Инструкция по выносу сервиса расчета Excel-отчетов на отдельную машину для ОС Windows.
Инструкция для ОС Linux находится на отдельной странице.
Опубликовать проект SL.Spreadsheet.WcfService
, используя Release
.
После этого в папке Publish\SpreadsheetService
(полный путь ~\SL.Spreadsheet.WcfService\Publish
) опубликуется сервис пересчета.
Активация 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
, где будет размещаться сервис.
inetpub\wwwroot
).http
, net.tcp
, net.pipe
.
Запустить сервис пересчета, запустив файл SL.Spreadsheet.WcfService.exe
из папки Publish\SpreadsheetService
.
Настройка приложения ADVANTA на работу с удаленным сервисом пересчета Excel-отчетов:
1. В client.config
в appSettings
добавить:
<add key="WorkbookHandler" value="Remote" />
По умолчанию:
2. В serviceModelClient.config
раскомментировать endpoint
с протоколом, который требуется использовать:
netNamedPipeBinding
;netTcpBinding
.
Исправить значение address
на адрес к развернутому сервису - путь должен выглядеть так: net.pipe:⁄⁄{адрес к сервису}/WorkbookHandlerService.svc
.
Для включения Serilog
в сервисе пересчета в Web.config
сервиса в секцию appSettings
необходимо добавить:
<add key="ProfilerLogEnable" value="true"/> <add key="ProfilerLogPath" value="C:\inetpub\wwwroot\SpreadsheetService\logs"/> <add key="ProfilerAllLogsSizeLimitMegaBytes" value="500"/>
C:\inetpub\wwwroot\SpreadsheetService\logs
должна быть подпапка ProfilerLog
, иначе ничего записываться не будет.
Также поддерживаются другие ключи: ProfilerLogPath
, ProfilerAllLogsSizeLimitMegaBytes
, IsWriteToProfilerLogAllRequests
, ProfilerLogExclusions
.
Можно добавить секцию log4net
в Web.config
сервиса:
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections>
Можно добавить секцию log4net
в configuration
:
<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>
Также можно настроить трассировку в wcf
. Пример настройки:
<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>
Пример Web.config
с настроенным логированием: