| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:settings:system:mass_docs_downloading [14.07.2025 11:31] – [Принципы настройки сервиса архивирования файлов] Белугин Александр | product:settings:system:mass_docs_downloading [15.08.2025 13:12] (текущий) – [Принципы настройки сервиса архивирования файлов] Белугин Александр |
|---|
| ==== Требования к программному обеспечению ==== | ==== Требования к программному обеспечению ==== |
| 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> |
| | \\ |
| | \\ |
| |
| ===== Принципы настройки сервиса архивирования файлов ===== | ===== Принципы настройки сервиса архивирования файлов ===== |
| <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> |
| |
| |
| **При использовании локального сервиса архивации доступны дополнительные параметры** | **При использовании локального сервиса архивации необходимо настроить дополнительные параметры, кроме указанных выше** |
| |
| <code xml> | <code xml> |
| <add key="DocumentsArchivingService" value="Local" /> | <add key="DocumentsArchivingService" value="Local" /> |
| | |
| <!-- Параметры, по аналогии с примером для удаленного сервиса --> | <!-- Параметры, по аналогии с примером выше для использования удаленного сервиса архивации --> |
| | |
| <!-- Дополнительные параметры при выборе локального сервиса архивации файлов --> | <!-- Дополнительные параметры при выборе локального сервиса архивации файлов --> |