====== Механизм выноса сервиса расчета 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 |}}