Показать страницуИстория страницыСсылки сюдаЭкспорт в PDFНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Механизм выноса сервиса расчета Excel-отчетов на отдельную машину (для ОС Windows) ====== Инструкция по выносу сервиса расчета Excel-отчетов на отдельную машину для ОС Windows. Инструкция для ОС Linux находится на отдельной [[product:settings:system:excel_table_report_linux|странице]]. ===== Как установить сервис и запускать его в автоматическом режиме ===== ==== Сборка сервиса пересчета Excel-отчетов ==== Опубликовать проект ''SL.Spreadsheet.WcfService'', используя ''Release''. После этого в папке ''Publish\SpreadsheetService'' (полный путь ''~\SL.Spreadsheet.WcfService\Publish'') опубликуется сервис пересчета. ==== Активация WAS для взаимодействия с сервисом ==== Активация WAS для взаимодействия с сервисом с помощью протоколов отличных от ''http'' (''net.tcp'', ''net.pipe'' и др.): 1. Установить компоненты Windows (Программы и компоненты): * ''.Net Framework 3.5'' → Активация WCF не по ''HTTP''; * Дополнительные службы ''.Net Framework 4.5'' → Службы WCF → Активация по ''HTTP'', Активация по ''TCP'', Активация по именованным каналам. 2. Добавить привязки ''net.tcp'', ''net.pipe'' в веб-сайт ''IIS'', где будет размещаться сервис. ==== Размещение сервиса пересчета Excel-отчетов ==== - Скопировать папку с сервисом "SpreadsheetService" (например, в ''inetpub\wwwroot''). - Создать отдельный пул в IIS для сервиса, обязательно в Integrated Mode ("встроенный" в русской версии Windows). - Создать приложение в IIS, где задать имя и путь к сервису из пункта 1, выбрать пул из пункта 2. - В дополнительных параметрах приложения указать активные протоколы: ''http'', ''net.tcp'', ''net.pipe''. ==== Запуск сервиса пересчета ==== Запустить сервис пересчета, запустив файл ''SL.Spreadsheet.WcfService.exe'' из папки ''Publish\SpreadsheetService''. ===== Настройка приложения ADVANTA ===== Настройка приложения ADVANTA на работу с удаленным сервисом пересчета Excel-отчетов: 1. В ''client.config'' в ''appSettings'' добавить: <code csharp> <add key="WorkbookHandler" value="Remote" /> </code> По умолчанию: * значение Local - встроенный режим; * значение Remote - удаленный режим. 2. В ''serviceModelClient.config'' раскомментировать ''endpoint'' с протоколом, который требуется использовать: * если приложение и сервис расположены на одном сервере, то рекомендуется использовать ''netNamedPipeBinding''; * если на разных серверах, то ''netTcpBinding''. Исправить значение ''address'' на адрес к развернутому сервису - путь должен выглядеть так: ''net.pipe:⁄⁄{адрес к сервису}/WorkbookHandlerService.svc''. ===== Логирование в сервисе пересчета Excel-отчетов ===== Для включения ''Serilog'' в сервисе пересчета в ''Web.config'' сервиса в секцию ''appSettings'' необходимо добавить: <code csharp> <add key="ProfilerLogEnable" value="true"/> <add key="ProfilerLogPath" value="C:\inetpub\wwwroot\SpreadsheetService\logs"/> <add key="ProfilerAllLogsSizeLimitMegaBytes" value="500"/> </code> <callout type="primary" icon="true">В папке с логами ''C:\inetpub\wwwroot\SpreadsheetService\logs'' должна быть подпапка ''ProfilerLog'', иначе ничего записываться не будет.</callout> Также поддерживаются другие ключи: ''ProfilerLogPath'', ''ProfilerAllLogsSizeLimitMegaBytes'', ''IsWriteToProfilerLogAllRequests'', ''ProfilerLogExclusions''. Можно добавить секцию ''log4net'' в ''Web.config'' сервиса: <code csharp> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> </code> Можно добавить секцию ''log4net'' в ''configuration'': <code csharp> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="C:\inetpub\wwwroot\SpreadsheetService\logs\log4net\log.txt"/> <appendToFile value="true"/> <rollingStyle value="Size"/> <maxSizeRollBackups value="10"/> <maximumFileSize value="50MB"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <root> <level value="ALL"/> <appender-ref ref="RollingFileAppender"/> </root> </log4net> </code> Также можно настроить трассировку в ''wcf''. Пример настройки: <code csharp> <system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> <listeners> <add name="xml" /> </listeners> </source> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="xml" /> </listeners> </source> </sources> <sharedListeners> <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="Log.svclog" /> </sharedListeners> </system.diagnostics> </code> Пример ''Web.config'' с настроенным логированием: <image shape="thumbnail">{{ :product:settings:system:image-2024-11-13_13-38-49.png?900 |}}</image>