Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:settings:system:mass_docs_downloading [14.07.2025 11:31] – [Принципы настройки сервиса архивирования файлов] Белугин Александрproduct:settings:system:mass_docs_downloading [15.08.2025 13:12] (текущий) – [Принципы настройки сервиса архивирования файлов] Белугин Александр
Строка 5: Строка 5:
 ==== Требования к программному обеспечению ==== ==== Требования к программному обеспечению ====
 1. Для запуска сервиса архивации на сервере необходимо: 1. Для запуска сервиса архивации на сервере необходимо:
-  * установить [[https://dotnet.microsoft.com/ru-ru/download/dotnet/3.1|.Net Core 3.1]];+  * установить [[https://dotnet.microsoft.com/ru-ru/download/dotnet/6.0|.Net 6.0]];
   * для учетной записи, из-под которой запускается сервис архивации, необходимо настроить соответствующие права на папку, в которой будут писаться/удаляться файлы.   * для учетной записи, из-под которой запускается сервис архивации, необходимо настроить соответствующие права на папку, в которой будут писаться/удаляться файлы.
 2. Необходимо установить архиватор [[https://www.7-zip.org/download.html|7-Zip]] для корректной распаковки скачанных архивов с документами. Чтобы скачанные архивы по умолчанию открывались через данную программу, необходимо убедиться, что файлы с расширением .zip ассоциированы с данным архиватором. 2. Необходимо установить архиватор [[https://www.7-zip.org/download.html|7-Zip]] для корректной распаковки скачанных архивов с документами. Чтобы скачанные архивы по умолчанию открывались через данную программу, необходимо убедиться, что файлы с расширением .zip ассоциированы с данным архиватором.
 +\\
 +\\
  
-==== Развертывание в качестве внешнего сервиса ==== +==== Развертывание в качестве внешнего (удаленного) сервиса ==== 
-  - Перейти в папку **DocumentsArchivingService**. +  - Распаковать дистрибутив системы ADVANTA на отдельном сервере 
-  - В папке **Config** настроить конфигурационный файл ''client.config'' сервиса архивации.+  - Перейти внутри каталога с распакованным дистрибутивом в папку **DocumentsArchivingService**. 
 +  - В подпапке **Config** настроить конфигурационный файл ''client.config'' сервиса архивации (см. ниже) и, при желании, выполнить настройки ведения логов в файле '' log4net.config''.
   - Из командной строки установить ''SL.DocumentsArchiving.Service.exe'' (содержится в папке **DocumentsArchivingService**) по команде ''install'', после чего запустить его по команде ''run''.   - Из командной строки установить ''SL.DocumentsArchiving.Service.exe'' (содержится в папке **DocumentsArchivingService**) по команде ''install'', после чего запустить его по команде ''run''.
 +\\
  
 +=== Настройка конфигурации внешнего сервиса ===
 +Файл конфигурации ''client.config'' должен быть скопирован в папку публикации сервиса. После редактирования файла конфигурации необходимо перезапустить сервис.
 +
 +Пример настройки файла конфигурации внешнего сервиса архивации
 +
 +<code xml>
 +<?xml version="1.0"?>
 +<configuration>
 +  <configSections>
 +    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
 +  </configSections>
 +
 +  <connectionStrings>
 +    <add name="db" providerName="System.Data.SqlClient" connectionString="Server={server};Database={database};User Id={user};Password={password}; Max Pool Size = 4000"/>
 +    <add name="busDb" providerName="System.Data.SqlClient" connectionString="Server={server};Database={database};User Id={user};Password={password}; Max Pool Size = 4000"/>
 +  </connectionStrings>
 +
 +  <appSettings>
 +    <add key="BusTransportType" value="SqlServer"/>
 +    <add key="Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers" value="1"/>
 +    <add key="Bus_DocumentsArchivingCommandsQueue:MaxParallelism" value="3"/>
 +    <add key="ProfilerLogEnable" value="true"/>
 +    <add key="IsWriteToProfilerLogAllRequests" value="true"/>
 +    <add key="ProfilerAllLogsSizeLimitMegaBytes" value="10"/>
 +    <add key="CompressionLevel" value="Optimal"/>
 +    <add key="TemporaryArchiveFlat" value="FileSystem"/>
 +    <add key="PathToTemporaryArchiveFlat" value="C:\Temp"/>
 +  </appSettings>
 +
 +  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
 +    <container>
 +      <register type="Advanta.Files.IFileStorageProvider, Advanta.Infrastructure" 
 +     mapTo="SL.Storage.SqlFileStorageProvider, SL.DocumentsArchiving.Service">
 +        <constructor>
 +          <param name="connectionStringName" value="db" type="string"></param>
 +        </constructor>
 +      </register>
 +    <!--
 +      <register type="Advanta.Files.IFileStorageProvider, Advanta.Infrastructure" 
 +     mapTo="SL.Storage.LocalFileStorageProvider, SL.DocumentsArchiving.Service">
 +        <constructor>
 +          <param name="documentsFolder" type="string" value="C:\LocalFileStorage" />
 +        </constructor>
 +      </register>
 +      -->
 +    </container>
 +  </unity>
 +</configuration>
 +</code>
 +
 +
 +**Обязательные настройки отмечены -звездочкой (*)**
 +
 +  - ''<configSections>'' (*) - не изменяется
 +  - ''<connectionStrings>'' (*) - настройка параметров подключения сервиса к базе данных системы ADVANTA
 +    * ''<add name="db" providerName="System.Data.SqlClient" connectionString="{DbConnectionString}" />'' (*)
 +      * ''name'' - тип подключения, возможные значения: ''db''
 +      * ''providerName'' - указание провайдера для подключения, возможные значения: ''System.Data.SqlClient''
 +      * ''connectionString'' - заменить значение ''{DbConnectionString}'' на корректную строку подключения к базе данных
 +    * ''<add name="busDb" providerName="System.Data.SqlClient" connectionString="{DbConnectionString}" />''
 +      * ''name'' - тип подключения, возможные значения: ''busDb'' - имя строки подключения для шины данных
 +      * ''providerName'' - указание провайдера для подключения, возможные значения: ''System.Data.SqlClient''
 +      * ''connectiongString'' - заменить значение ''{DbConnectionString}'' на корректную строку подключения к базе данных
 +  - ''<appSettings>'' (*) - основные настройки приложения типа ключ-значение ''<add key="{Key}" value="{Value}" />'' - один параметр определяет одну настройку. Описание значений ключей:
 +    * ''BusTransportType'' - тип транспорта для шины данных, возможные значения (если в конфиге нет параметра, используется значение ''SqlServer''):
 +      * ''SqlServer'' - шина данных работает через SQL Server (требует указания в разделе ''<connectionStrings>'' выше строки подключения с именем ''busDb'')
 +      * ''InMemory'' - шина данных работает через память
 +    * ''Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers'' - количество обработчиков событий сервиса архивации документов, значение по умолчанию 1
 +    * ''Bus_DocumentsArchivingCommandsQueue:MaxParallelism'' - максимальный параллелизм обработчиков событий сервиса архивации документов, значение по умолчанию 3
 +    * ''ProfilerLogEnable'' (*) - запущена ли запись событий сервиса архивации документов профайлером (''true'' или ''false'')
 +    * ''IsWriteToProfilerLogAllRequests'' (*) - следует ли записывать все события сервиса архивации документов профайлером (''true'' или ''false''
 +    * ''ProfilerAllLogsSizeLimitMegaBytes'' (*) - суммарный лимит (в МБ) журналов профайлера
 +    * ''CompressionLevel'' - степень сжатия архивов сервисом архивации документов (значение по умолчанию ''Optimal''):
 +      * ''Optimal'' - максимальное сжатие
 +      * ''Fastest'' - максимальная скорость архивации
 +      * ''NoCompression'' - без сжатия
 +    * ''TemporaryArchiveFlat'' - место временного размещения скачанных архивируемых файлов - только для DocumentsArchivingService=Local (значение по умолчанию ''Memory''):
 +      * ''Memory'' - оперативная память
 +      * ''FileSystem'' - файловая система
 +    * ''PathToTemporaryArchiveFlat'' - путь к папке для временного размещения скачанных архивируемых файлов - работает и обязателен только для варианта ''TemporaryArchiveFlat'' = ''FileSystem''
 +  - ''<unity>'' - настройки DI-контейнера. Надо выбрать только 1 из вариантов, а второй закомментировать (как в примере выше):
 +    * ''<register>...первый блок ...</register>'' - при разрешении зависимости в SL.Storage.SqlFileStorageProvider (файлы хранятся в БД)
 +    * ''<register>...второй блок ...</register>'' - при разрешении зависимости в SL.Storage.LocalFileStorageProvider (файлы хранятся на диске, значение ''value'' параметра ''documentsFolder'' должно содержать имя папки с файлами)
 +\\
 +\\
 +
 +=== Настройка логирования работы внешнего сервиса архивации ===
 +
 +Файл конфигурации ведения логов приложения ''log4net.config'' должен быть скопирован в папку публикации сервиса. Если данный файл отсутствует, то в этом случае логи работы сервиса вестись не будут. 
 +После редактирования файла конфигурации логов необходимо перезапустить сервис.
 +
 +
 +Пример содержания файла ''log4net.config'':
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8" ?>
 +<log4net>
 +    <root>
 +      <level value="ALL"/>
 +      <appender-ref ref="appender"/>
 +    </root>
 +    <appender name="appender" type="log4net.Appender.RollingFileAppender">
 +      <file value="archsvc.log"/>
 +      <appendToFile value="true"/>
 +      <rollingStyle value="Size"/>
 +      <maxSizeRollBackups value="3"/>
 +      <maximumFileSize value="3MB"/>
 +      <staticLogFileName value="true"/>
 +      <layout type="log4net.Layout.PatternLayout">
 +     <conversionPattern value="%d %-5p %m%n"/>
 +      </layout>
 +    </appender>
 +</log4net>
 +</code>
 +
 +Подробнее о значениях параметров файла настройки см. в официальной документации Log4net - https://logging.apache.org/log4net/manual/configuration/appenders/rollingfileappender.html
 +
 +
 +
 +
 +\\
 +\\
 ==== Развертывание в качестве локального сервиса ==== ==== Развертывание в качестве локального сервиса ====
-Для использования локального сервиса архивации (встроенного в Cистему), необходимо [[product:settings:system|настраивать]] его в конфигурационном файле ''client.config'' Системы.+Для использования локального сервиса архивации (встроенного в Cистему), устанавливать отдельно его не нужно, но необходимо настраивать параметры сервиса в конфигурационном файле ''client.config'' самой Системы (см. ниже).
  
-<callout type="info" icon="true">Рекомендуется разворачивать сервис архивации файлов удаленно, т.е. на отдельном сервере, отличном от сервера, где установлена Система ADVANTA.</callout>+<callout type="info" icon="true">Рекомендуется разворачивать сервис архивации файлов только удаленно, т.е. на отдельном сервере, отличном от сервера, где установлена Система ADVANTA.</callout> 
 +\\ 
 +\\
  
 ===== Принципы настройки сервиса архивирования файлов ===== ===== Принципы настройки сервиса архивирования файлов =====
Строка 44: Строка 172:
     <add key="MinFolderNameLength" value="3" />     <add key="MinFolderNameLength" value="3" />
     <add key="MinRootFolderNameLength" value="30" />       <add key="MinRootFolderNameLength" value="30" />  
-     
-    <!-- и другие необходимые параметры сервиса архивации (перечень ниже) в формате <add key="{параметр}" value="{значение}" />  --> 
      
 </appSettings> </appSettings>
Строка 53: Строка 179:
  
  
-**При использовании локального сервиса архивации доступны дополнительные параметры**+**При использовании локального сервиса архивации необходимо настроить дополнительные параметры, кроме указанных выше**
  
 <code xml> <code xml>
Строка 65: Строка 191:
     <add key="DocumentsArchivingService" value="Local" />     <add key="DocumentsArchivingService" value="Local" />
          
-    <!-- Параметры, по аналогии с примером для удаленного сервиса -->+    <!-- Параметры, по аналогии с примером выше для использования удаленного сервиса архивации -->
          
     <!-- Дополнительные параметры при выборе локального сервиса архивации файлов -->     <!-- Дополнительные параметры при выборе локального сервиса архивации файлов -->