====== Механизм выноса сервиса расчета 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'' добавить: По умолчанию: * значение Local - встроенный режим; * значение Remote - удаленный режим. 2. В ''serviceModelClient.config'' раскомментировать ''endpoint'' с протоколом, который требуется использовать: * если приложение и сервис расположены на одном сервере, то рекомендуется использовать ''netNamedPipeBinding''; * если на разных серверах, то ''netTcpBinding''. Исправить значение ''address'' на адрес к развернутому сервису - путь должен выглядеть так: ''net.pipe:⁄⁄{адрес к сервису}/WorkbookHandlerService.svc''. ===== Логирование в сервисе пересчета Excel-отчетов ===== Для включения ''Serilog'' в сервисе пересчета в ''Web.config'' сервиса в секцию ''appSettings'' необходимо добавить: В папке с логами ''C:\inetpub\wwwroot\SpreadsheetService\logs'' должна быть подпапка ''ProfilerLog'', иначе ничего записываться не будет. Также поддерживаются другие ключи: ''ProfilerLogPath'', ''ProfilerAllLogsSizeLimitMegaBytes'', ''IsWriteToProfilerLogAllRequests'', ''ProfilerLogExclusions''. Можно добавить секцию ''log4net'' в ''Web.config'' сервиса:
Можно добавить секцию ''log4net'' в ''configuration'': Также можно настроить трассировку в ''wcf''. Пример настройки: Пример ''Web.config'' с настроенным логированием: {{ :product:settings:system:image-2024-11-13_13-38-49.png?900 |}}