Развертывание BPMSoft .NET 8 на Microsoft
Windows
Подготовка к развертыванию BPMSoft
Перед развертыванием системы необходимо выполнить следующие шаги:
- Проверка обязательных компонентов Microsoft Windows;
- Для операционной системы Microsoft Windows Server;
- Для операционной системы Microsoft Windows 10;
- Установка сервера кэширования;
- Установка СУБД и восстановление базы данных.
Проверка обязательных компонентов Microsoft Windows
Для корректной установки и работы BPMSoft требуется проверить, что установлены:
- Компонент Microsoft Visual C++ 2015-2022 Redistributable;
- Компоненты Web Server IIS.
Список обязательных компонентов и их элементов представлен в таблице ниже.
Таблица 1 — Список обязательных компонентов и их элементов
| Название компонента | Расположение | Элементы компонента |
| Common HTTP Features | Web Server (IIS) → Web Server |
|
| Application Development | Web Server (IIS) → Web Server |
|
| Microsoft .Net Framework 4.7 Advanced Services и выше (Windows 8, Windows 10, Windows Server 2012, Windows Server 2016). | — |
|
| Health and Diagnostics |
Web Server (IIS) → Web Server |
|
| Security | Web Server (IIS) → Web Server |
|
Проверка обязательных компонентов для операционной системы Microsoft Windows Server
Для корректной установки и работы BPMSoft на Microsoft Windows Server требуется проверить наличие установки обязательных компонентов и при их отсутствии установить недостающие. Для этого требуется выполнить следующие действия.
- Откройте «Control Panel» и выберите «Turn Windows features on or off».
Рисунок 1 — Окно «Control Panel»

- В открывшемся окне «Add Roles and Features Wizard» на вкладке «Installation Type» выберите «Role-based or feature-based installation».
Рисунок 2 — Вкладка «Installation Type» окна «Add Roles and Features Wizard»

- На вкладке «Server Selection» выберите сервер, для которого будут установлены требуемые компоненты.
Рисунок 3 — Вкладка «Server Selection» окна «Add Roles and Features Wizard»

- На вкладке «Server Role» выберите компоненты, как показано на рисунке 4.
Рисунок 4 — Вкладка «Server Role» окна «Add Roles and Features Wizard»

- На вкладке «Features» выберите функции, если это необходимо.
Рисунок 5 — Вкладка «Features» окна «Add Roles and Features Wizard»

- На вкладке «Confirmation» проверьте выбранные для установки компоненты и нажмите «Install».
- После завершения установки перезагрузите сервер.
Проверка обязательных компонентов для операционной системы Microsoft Windows 10
Для корректной установки и работы BPMSoft на Microsoft Windows 10 требуется проверить наличие установки обязательных компонентов и при их отсутствии установить недостающие. Для этого требуется выполнить следующие действия:
- Откройте «Control Panel» и выберите «Programs».
- Далее выберите «Turn Windows features on or off».
- В окне «Windows Features» установите недостающие компоненты.
Рисунок 6 — Окно «Windows Features»

Установка сервера кэширования
Для успешного развертывания BPMSoft необходимо установить сервер кэширования. Подробнее: Развертывание сервера кэширования для BPMSoft.
В системных требованиях BPMSoft перечислены поддерживаемые серверы кэширования. Подробнее: Системные требования BPMSoft.
Установка СУБД и восстановление базы данных
Для работы BPMSoft требуется установить одну из СУБД:
- Microsoft SQL;
- PostgreSQL.
Для восстановления базы данных и настроек доступа создайте пользователя с правами на управление сервером базы данных, а для подключения к системе создайте пользователя с правами на чтение и редактирование базы данных.
После чего восстановите базу данных из резервной копии, которая находится в папке «db» корневой директории. Подробнее: Развертывание базы данных.
Развертывание BPMSoft .NET 8
При проверке обязательных компонентов для развертывания продукта на платформе .NET 8 необходимо удостовериться, что установлены следующие компоненты:
- .NET SDK 8.0;
- .NET Runtime 8.0.
Скачать компоненты можно на официальном сайте.
Развертывание системы состоит из следующих шагов:
- Настройка ConnectionStrings.config;
- Настройка сайта и пула приложения для системы в IIS;
- Настройка сайта для системы с помощью NSSM.
Настройка ConnectionStrings.config
Для работы BPMSoft требуется правильно заполнить файл «ConnectionStrings.config». Для этого требуется распаковать архив с дистрибутивом системы в директорию, на которую будет настроен Internet Information Services (IIS).
После распаковки системы и настройки базы данных, открыть любым текстовым редактором файл «ConnectionStrings.config», который находится в корне директории с дистрибутивами системы.
Описание параметров для настройки:
- db — подключение к восстановленной базе данных;
- redis — подключение к серверу Redis;
- tempDirectoryPath — путь к временной директории, используемой при установке пакетов;
- elasticsearchCredentials — данные аутентификации в поисковой системы OpenSearch (далее — Search Engine);
- influx — взаимодействие с сервером сбора метрик системы;
- clientPerformanceLoggerServiceUri — взаимодействие с сервисом логирования;
- messageBroker — взаимодействие с сервисом RabbitMQ.
Обязательные параметры
Строка подключения к базе данных Microsoft SQL Server
<add name="db" connectionString="Data Source=[Имя сервера БД]; Initial Catalog=[Имя БД]; Persist Security Info=True; MultipleActiveResultSets=True; User ID=[Логин пользователя]; Password=[Пароль пользователя]; Pooling = true; Max Pool Size = 250; Connection Timeout=5; Encrypt=False;" />
Строка подключения к базе данных PostgreSQL
Без использования SSL
<add name="db" connectionString="Pooling=true; Database=[Имя БД]; Host=[Имя сервера БД]; Port=[Порт]; Username=[Логин пользователя]; Password=[Пароль пользователя]; Timeout=500; CommandTimeout=400; MaxPoolSize=1024;" />
C использованием SSL
Руководство по настройке SSL-подключения к PostgreSQL приведено в статье Развертывание базы данных для BPMSoft.
<add name="db" connectionString="Pooling=true; Database=[Имя БД]; Host=[Адрес сервера БД]; Port=[Порт]; Username=[Имя пользователя]; Timeout=500; CommandTimeout=400; MaxPoolSize=1024; Trust Server Certificate=False; Persist Security Info=true; SslMode=VerifyFull; SSL Certificate=[Путь до client.crt]; SSL Key=[Путь до файла client.key]; Root Certificate=[Путь до файла ca.crt]" />
Строка подключения к серверу кэширования
<add name="redis" connectionString="host=[Имя сервера];db=[Номер БД сервера кэширования]; port=[Порт сервера кэширования]; maxReadPoolSize=10; maxWritePoolSize=500; useTls=false;" />
<add name="redis" connectionString="host=[Имя сервера];db=[Номер БД сервера кэширования]; port=[Порт сервера кэширования]; maxReadPoolSize=10; maxWritePoolSize=500; useTls=false; password=[Пароль сервера кэширования]" />
<add name="redis" connectionString="host=[Имя сервера];db=[Номер БД сервера кэширования]; port=[Порт сервера кэширования]; maxReadPoolSize=10; maxWritePoolSize=500; useTls=true; certLocationMode=CertPath; certificatePath=[Путь до файла сертификата]; certificatePassword=[Пароль от сертификата]; sslHost=[Адрес хоста получения сертификата]" />
<add name="redis" connectionString="host=[Имя сервера];db=[Номер БД сервера кэширования]; port=[Порт сервера кэширования]; maxReadPoolSize=10; maxWritePoolSize=500; useTls=true; certLocationMode=CertStore; storeName=[Наименование хранилища сертификатов]; storeLocation=[Расположение хранилища сертификатов]; certFindType=[Критерий для поиска сертификата]; certFindValue=[Значение для поиска сертификата]" />
Строка подключения к временной директории для загрузки пакетов
<add name="tempDirectoryPath" connectionString=[Путь к временной директории] />
Необязательные параметры
<add name="elasticsearchCredentials" connectionString="User=[Имя пользователя Search Engine]; Password=[Пароль пользователя Search Engine];" />
<add name="influx" connectionString="url=[Адрес сервиса сбора метрик]; user=[Имя пользователя]; password=[Пароль пользователя]; batchIntervalMs=5000" />
<add name="messageBroker" connectionString="amqp://[Имя пользователя MessageBroker]:[Пароль пользователя]@[Адрес сервера]/[Имя виртуального сервера]; useTls=false" />
<add name="messageBroker" connectionString="amqp://[Имя пользователя MessageBroker]:[Пароль пользователя]@[Адрес сервера]/[Имя виртуального сервера]; useTls=true; certLocationMode=CertPath; certPath=[Путь до файла сертификата]; certPassphrase=[Пароль от сертификата]; serverName=[SAN или CN сертификата сервера]" />
<add name="messageBroker" connectionString="amqp://[Имя пользователя MessageBroker]:[Пароль пользователя]@[Адрес сервера]/[Имя виртуального сервера]; useTls=true; certLocationMode=CertStore; storeName=[наименование хранилища сертификатов]; storeLocation=[расположение хранилища сертификатов]; certFindType=[критерий для поиска сертификата]; certFindValue=[значение для поиска сертификата]; serverName=[SAN или CN сертификата сервера]" />
<add name="clientPerformanceLoggerServiceUri" connectionString="[Адрес сервиса логирования]" />
Если у вас будет подключение к RabbitMQ, то необходимо убедиться, что в файле BPMSoft.WebHost.dll.config установлена настройка operatingMode="Auto":
<serviceBus incomingQueueName="bpmstudio_main" defaultSendAddress="exchange:bpmstudio_exchange" operatingMode="Auto" messageProcessingThreadsCount="10" />
При использовании настройки operatingMode="InMemory" вместо внешнего брокера RabbitMQ очередь сообщений будет храниться в памяти приложения.
Настройка сайта и пула приложения для системы в IIS
Для работы BPMSoft требуется в Internet Information Services (IIS) создать и настроить соответствующий веб-сайт и пул приложения.
Шаги для создания сайта при развертывании системы:
- Откройте IIS. В контекстном меню секции «Sites» выберите «Add Website».
- В появившемся окне введите «Site name», выберите путь к корневой директории системы, введите «Port» и «Host name», где будет располагаться приложение.
Рисунок 7 — Добавление сайта в IIS

- Нажмите «OK».
- Получите цифровой сертификат в формате «.pfx».
- В секции сервера выберите «Server Certificates».
- Выберите «Import». В появившемся окне выберите файл сертификата. Укажите пароль и хранилищем сертификатов выберите «Web Hosting».
Рисунок 8 — Окно «Import Certificate»

- Нажмите «ОК».
- Перейдите в секцию сайта приложения. Выберите «Bindings».
- В появившемся окне нажмите «Add». Выберите «Type» — «https», введите «Host name» и выберите добавленный ранее сертификат.
Рисунок 9 — Добавление «Site Bindings»

- Нажмите «ОК».
По умолчанию пул приложения запускается от учетной записи «ApplicationPoolIdentity».
Рисунок 10 — Пулы приложений

При запуске от учетной записи «ApplicationPoolIdentity» необходимо выдать доступ на корневую папку системы BPMSoft для группы IIS_IUSRS, как показано на рисунке ниже.
Рисунок 11 — Выдача прав на корневую папку системы BPMSoft

С точки зрения безопасности рекомендуется запускать каждое IIS приложение под отдельным сервисным пользователем. Реализовать это можно, например, с помощью локальной учетной записи.
Чтобы назначить пользователя пулу приложений IIS, выполните следующие шаги:
- Откройте IIS Manager (inetmgr.exe).
- Перейдите на вкладку «Пулы приложений» (Application Pools).
- Нажмите правой кнопкой мыши на нужный пул и выберите «Дополнительные настройки» (Advanced Settings).
- В разделе «Процесс-модель» (Process Model) найдите строку «Удостоверение» (Identity).
- Выберите «Удостоверение» (Identity) и нажмите на кнопку «...» (...).
Рисунок 12 — Настройки в разделе «Process Model»

- В открывшемся окне выберите опцию «Custom account» и нажмите «Set».
- Введите логин (bpmsoft) и пароль созданного пользователя и нажмите ОК.
Рисунок 13 — Настройка логина и пароля созданного пользователя

После сохранения пользователь, от которого запускается пул приложения, будет изменен.
Рисунок 14 — Измененное значение параметра Identity

- Предоставьте необходимые права доступа к директории (изменение, чтение и выполнение, список содержимого папки, чтение, запись) для локального пользователя bpmsoft без полного доступа.
Рисунок 15 — Выдача прав на корневую папку системы BPMSoft

- После изменений перезапустите пул и приложение в IIS. Это обеспечит безопасный запуск сайта под новым пользователем без использования ApplicationPoolIdentity.
Шаги для настройки пула приложения при развертывании системы:
- Выберите секцию «Applications Pools» и откройте созданный пул.
- В появившемся окне проверьте, что все пункты аналогичны представленным на рисунке ниже.
Рисунок 16 — Проверка полей пула в IIS

- В секции web-сервера выберите «ISAPI and CGI Restrictions» и проверьте, что выбранная версия «ASP.Net» имеет статус «Allowed».
Рисунок 17 — Проверка версии «ASP.Net» в «ISAPI and CGI Restrictions»

- Перейдите в секцию «Advanced Settings», далее в блок «Process Model» и проверьте, что для свойства «Load User Profile» («Загрузить профиль пользователя») установлено значение «true». Включение загрузки профиля необходимо для того, чтобы пользователь приложения (в частности, учетные записи MSA) имел возможность использовать свое домашнее окружение. В таком случае создаются папки по пути C:\Users\<MyMsaAccount>\AppData\Roaming\npm и C:\Users\<MyMsaAccount>\AppData\Roaming\npm-cache.
Рисунок 18 — Проверка загрузки профиля пользователя («Load User Profile»)

В противном случае, если для свойства «Load User Profile» установлено значение «false», то процесс попытается создать данные папки по пути C:\Windows\System32\config\systemprofile\AppData\Roaming\ и может возникнуть ошибка доступа. В качестве альтернативного способа необходимо раздать права на пользователя пула IIS для папки C:\Windows\System32\config\systemprofile\AppData\Roaming.
- В секции web-сервера выберите «Handler Mappings». Нажмите «Edit Feature Permissions» и проверьте, что в появившемся окне установлены все признаки.
Рисунок 19 — Проверка полей в «Edit Feature Permissions»

- В секции сайта выберите «Authentication». Убедитесь, что для «Windows Authentication» установлено значение «Enabled».
<add key="Feature-UseNetcoreDomainAuth" value="false"/>
Рисунок 20 — Проверка полей в «Authentication» в секции сайта

- В секции web-сервера выберите «MIME Types». Проверьте, что в списке присутствуют значения «.svg» и «.json». Если такие значение отсутствуют, то нажмите «Add…» и добавьте «.svg» (MIME type: image/svg+xml) и «.json» (MIME type: application/json).
Рисунок 21 — Добавление «MIME Types»

- Перейдите в секцию созданного сайта и перезапустите его с помощью кнопки «Restart».
- Откройте сайт, перейдя в браузере по его адресу или с помощью кнопки «Browse» в секции сайта.
Настройка сайта для системы с помощью NSSM
Перед данной настройкой выполните действия из разделов Настройка ConnectionStrings.config и Настройка сайта и пула приложения для системы в IIS.
Для настройки BPMSoft с помощью NSSM требуется установить .NET SDK 8 и NSSM.
Настройте сервис для запуска приложений с помощью команд:
nssm install BPMSoft "C:\Program Files\dotnet\dotnet.exe" nssm set BPMSoft AppParameters [Путь к директории BPMSoft]\BPMSoft.WebHost.dll nssm set BPMSoft AppDirectory [Путь к директории BPMSoft] nssm start BPMSoft
Рекомендуем изучить
Дополнительные настройки после развертывания BPMSoft на Windows