Инструкция по развёртыванию модуля триггеров в операционной системе Windows: версия 16.Х.
Перед началом установки модуля триггеров убедитесь, что установка Системы ADVANTA проведена корректно, иначе модуль триггеров не запустится. Информацию об установке Системы можно найти на страницах:
Windows server 2012 R2, или выше. Со всеми последними обновлениями
MS Internet Information Services (IIS) 8.5.
.net core 3.1.3 hosting bundle
SQL-сервер
Windows server 2012 R2, или выше. Со всеми последними обновлениями
Один из вариантов СУБД:
MS SQL Server 2012, или выше. Со всеми последними обновлениями
PostgreSql версии 10, или выше
Настройка сервера базы данных
MS SQL Server
Открыть оснастку SQL Server Management Studio
Создать новую базу данных. В названии указать любое значение (например triggers)
Создать учетную запись для базы данных модуля триггеров.
В окне «Обозреватель объектов» (Object Explorer) раскрыть «Безопасность» (Security), нажать правой кнопкой мыши на «Имена входа» (Logins) и выбрать «Создать имя» (New Login)
В разделе «Общие» (General):
В поле «Имя входа» (Login name) ввести любое значение (например triggers). Введённый логин затем понадобится указать на сервере приложения для доступа к базе данных.
Ввести пароль учетной записи. Введённый пароль затем понадобится указать на сервере приложения для доступа к базе данных
Выставить опцию «Проверка подлинности SQL Server» (SQL Server authentication)
Убрать опцию «Требовать использование политики паролей» (Enforce password policy)
Выставить используемый язык «Язык по умолчанию» (Default language), выбрав в выпадающем меню «Русский» (Russian)
Выставить используемую базу данных «База данных по умолчанию», выбрав в выпадающем списке меню базу, созданную на шаге 2.1.1.2
Нажать «OK»
Открыть созданную учетную запись. Перейти на страницу «Сопоставление пользователей» (User Mapping):
В окне «Пользователи, сопоставленные с этим именем входа» (User mapped to this login) в столбце «Схема» (Map) установить галочку напротив базы, созданную на шаге 2.1.1.2
В окне «Членство в роли базы данных для: <выбранная база данных>» (Database role for membership for) выставить права db_owner.
Настройка PostgreSql
Открываем pgAdmin
Добавляем пользователя
Создаем новую БД.
Подготовка сервера приложений
Установить Net core 3.1.3 hosting bundle
Установить Internet Information Services с компонентами по умолчанию
Добавить учетную запись пользователя в систему, от которого будет работать сервис через оснастку «Локальные пользователи и группы».
Распаковать архив с предоставленным модулем триггеров в папку содержащую контенты сайтов IIS (по умолчанию для IIS путь к папке: C:\inetpub\wwwroot\)
Настроить конфигурационный файл модуля триггеров appsettings.json в скопированном контенте
Секция «Database»: «ConnectionStrings», строка подключения к созданной базе данных модуля триггера
RuntimeUser – логин и пароль администратора, от чьего имени будут вестись запросы в API системы Advanta при исполнении триггеров (параметры Login и Password соответственно). Под этим пользователем, через API так же осуществляется запрос на извлечение данных о типах объектов.
Host – URL адрес сервера для осуществления запросов в API системы Advanta. Должно работать через https и доменное имя адреса обязательно должно совпадать с именем, на которое был выдан сертификат для системы Адванта.
Секция «Rebus»: «ConnectionStrings», строка подключения к шине событий системы Advanta (к той базе системы ADVANTA, для которой настраиваются триггеры).
Раздел Logging, подраздел File
RootPath – абсолютный путь по которому будет размещаться папка с логами. По умолчанию полный путь до папки с приложением.
BasePath – относительный путь до папки, в которой будут создаваться файлы с логами. По умолчанию Logs. Конечный путь до папки с файлами логов будет сформирован объединением путей: [RootPath]\[BasePath].
LogLevel – набор фильтров сообщений, поступающих в лог. Формируется по правилам стандартного логирования в Asp.Net Core. Для полного отключения логов, необходимо внутри данной секции указать параметр «Default» : «None».
Раздел Advanta
RuntimeUser - используется логин и пароль локальной учетной записи администратора системы Адванта.
**Подраздел Api**
ObjectsSyncTimeout – период синхронизации типов объектов с системой Advanta. Задаётся в секундах. Параметр необязательный. Значение по умолчанию 1440 (т.е. раз в 24 минуты).
RequestTimeout – период ожидания ответа SOAP API системы Advanta. Задаётся в секундах. Параметр необязательный. Если параметр не задан или его значение равно 0, то будет использовано значение по умолчанию равное 3600 (т.е. 3600 секунд, что равно одному часу).
**Подраздел Rebuild (Api)**
RootPath – абсолютный путь в котором будет размещаться папка для генерации исходного кода Api. По умолчанию [полный путь до папки с приложением]\\CompilerConfig.
BasePath – относительный путь до папки, в которой будет собираться Api. По умолчанию Api. Папка должна присутствовать на сервере и у приложения триггеров должен быть доступ на запись и чтение в папку.
Endpoints – строковый массив названий soap endpoint-ов, которые будут опрашиваться для сборки Api. По умолчанию : [«Login», «Persons», «APIDiscussions», «APIPlans», «APIProjects», «APIService», «APISecurity», «APIRelations»].
Disabled – признак принудительного запрета на сборку Api во время работы модуля. По умолчанию false.
**Подраздел Alerts**
Emails – список почтовых адресов, на которые необходимо рассылать уведомления о перезапуске или сбое в работе триггеров. Список необходимо указать через любой из разделителей: запятая, точка с запятой, пробел.
Подраздел SmtpServer – содержит настройки smtp сервера для отправки email уведомлений:
Address: адрес smtp сервера,
Login: логин (email) отправителя,
Password: пароль отправителя,
Port: номер порта, если требуется,
UseSSL: требование использовать SSL (true/false) по умолчанию false
**Подраздел Rebus**
Transport – тип транспорта для Rebus шины сообщений. Возможные варианты:
«MSSQL»
«PostgreSql».
Если параметр не указан или пустой, то по-умолчанию используется значение «MSSQL».
ConnectionString – строка подключения к базе данных, через которую публикуются сообщения rebus.
InputQueueName – название очереди сообщений (канала), через которую будут поступать сообщения для данного instans-а. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue», для PostgreSql по-умолчанию будет «bus_triggers_queue».
Для MSSQL параметр игнорируется, так как для MSSQL Rebus использует (и при необходимости создаёт) таблицу с именем, совпадающим с названием входящей очереди сообщений (InputQueueName).
SubscriptionsTableName – название таблицы, в которую будет размещена информация о подписках. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue_Subscriptions», для PostgreSql по-умолчанию будет «bus_triggers_input_queue_subscriptions» (должно совпадать с настройками публикующего сервиса).
PostgreSqlMessagesTableName – название таблицы, через которую будет вестись обмен сообщениями в случае PostgreSql транспорта. По умолчанию будет использоваться «bus_triggers_messages» (должно совпадать с настройками публикующего сервиса).
**Раздел Database**
Provider – определяет тип СУБД, используемой для модуля триггеры. Возможные варианты:
“MSSQL” и “PostgreSql”.
Если параметр не указан или пустой, то по умолчанию используется значение “MSSQL”.
Возможен так же вариант “Memory”. В этом варианте СУБД использоваться не будет, а все будет храниться в памяти до завершения работы приложения. Данный режим удобно использовать в процессе разработки и тестирования.
ConnectionString – строка подключения к базе данных, в которой размещаются триггеры.
MigrateOnStartup – признак автоматической миграции структуры базы данных.
Принимаемые значения «true» или «false». Параметр необязательный. Значение по умолчанию “false”.
Флаг «true» может потребоваться только если есть возможность обновления и развёртывания схемы данных через миграции (например, во время разработки или создания локальной базы). Если значение флага установлено в “true”, потребуются права на создание, изменение, удаление таблиц и индексов.
**Раздел Module**
InstanceName – наименование запускаемого инстанса модуля Триггеры. Данное наименование добавляется к логам и в тему email уведомлений
Настройка Internet Infirmation Services (IIS)
Открыть «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).
При необходимости создать сертификат, перейти в меню «Сертификаты сервера», в окне «Действия» выбрать «Создать самозаверенный сертификат». – ЕСЛИ СЕРТИФИКАТ ЕСТЬ, САМОЗАВЕРЕННЫЙ НЕ НУЖЕН
Данный сертификат в дальнейшем можно будет импортировать на другой сервер, для этого нужно выбрать справа «Экспортировать», выбрать расположение и задать пароль, затем полученный сертификат импортировать и добавить в «Доверенные корневые центры сертификации».
Перейти к разделу «Пулы приложений» (Application pools):
Создать новый пул для приложения:
Имя – любое.
Пул приложения – «Без управляемого кода».
Режим управляемого конвейера – «Встроенный».
Открыть «Дополнительные параметры» (Advanced settings) созданного пула приложений, изменить следующие параметры:
«Загрузить профиль пользователя» (Load User Profile) на «True»
«Режим запуска» (Start mode) на «Always Running»
«Интервал сбоев (в минутах)» (Idle Time-out (minutes)) на 0
«Действие при окончании времени ожидания простоя» (Idle Time-out Action) - на «Suspend»
«Предварительная установка включена» (Set Preload Enabled) - «True»
«Постоянный временной интервал» (в минутах)(Regular Time Interval)(minutes) на 0
Перейти к разделу «сайты», нажимаем «Добавить веб сайт»:
Создать новый веб сайт:
Имя любое
Выбрать пул, созданный на шаге 3.3 только что созданный нами пул приложения.
Физический путь – выбрать папку с распакованным веб контентом модуля триггеров на шаге 2.4
Выбираем в списке сайтов вновь созданный сайт, заходим в контекстное меню и выбираем пункт «Редактировать разрешение», переходим на вкладку «Безопасность» и добавляем туда созданную выше учетную запись пользователя.
Заходим на созданную страницу IIS сайта, в действиях нажимаем «Тест настроек», должно открыться модальное окно, в котором все пункты будут отмечены зелеными индикаторами, говорящие об успешности настройки доступа сайта и файловой системы.