appsettings.json
Шаблон
{
"Version": "1.0",
"Serilog": {
"MinimumLevel": "Warning",
"WriteTo": [
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "%CONTENT_ROOT%\\Logs\\log-{Date}.txt",
"fileSizeLimitBytes": null,
"retainedFileCountLimit": null,
"outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}",
"buffered": false
}
},
{
"Name": "LiterateConsole",
"Args": {
"outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}"
}
},
{ "Name": "Debug" },
{
"Name": "EventLog",
"Args": {
"logName": "Workflow Technology",
"source": "Workflow Engine",
"outputTemplate": "{Timestamp:o}{NewLine}[{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}){NewLine}{Message}{NewLine}{Exception}{NewLine}"
}
}
]
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId", "WithRequestId" ]
},
"Database": {
"ServerAddress": "localhost",
"ServerPort": "5432",
"User": "postgres",
"Password": "postgres",
"Database": "template_project"
},
"Storages": {
"Default": {
"Path": "Upload",
"Format": "yyyy\\\\MM\\\\dd"
}
},
"FormsFolder": "C:\\WorkflowSystems\\Projects",
"BinaryPath": "C:\\WorkflowSystems\\Distr\\WorkflowForms",
"TempUpdateDir": "C:\\WorkflowSystems\\TempUpdateTest",
"WebFormsFolder": "",
"WebBinaryPath": "",
"WorkflowWebServiceName": "",
"MobileFormsFolder": "C:\\WorkflowSystems\\Projects",
"MobileBinaryPath": "D:\\WorkflowEngine\\_Template.v3 (mobile)\\MobileBin",
"WorkflowServer": {
"ServerUrl": "http://ws00:7070",
"WorkflowEngineUpdateService": {
"Name": "WorkflowEngineUpdateService",
"Port": 9090
},
"HelpDesk": {
"Enabled": false
},
"Update": {
"Enabled": false
}
},
"SchedulerLog": "False",
"SystemLocale": "ru-RU",
"LogLocale": "ru-RU",
"BackupCloudPath": "",
"BackupCloudInterval": {
"Start": "01:00",
"Finish": "05:00"
},
"DebugMode": "False",
"DebugPath": "D:\DebugDC",
"PerformanceChecking": {
"Enabled": "False",
"Delayed": "True",
"RamThreshold": 2048
},
"TimeZone": {
"TimeZone": "Asia/Yekaterinburg"
},
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1"
},
"Certificates": {
"Default": {
"Path": "D:\\WorkflowEngine\\Tachki.v3\\certificate-https.pfx",
"Password": "niBCev&n2FNA#clw"
}
}
}
}
Настройки сервера
TimeZone
Задает временную зону сервера, в которой будут храниться в базе данных все даты со временем.
Необязательное поле. Ожидается название временной зоны в формате IANA.
Значение по умолчанию: "Etc/GMT"
"TimeZone": {
"TimeZone": "Asia/Yekaterinburg"
}
SystemLocale
Задает код культуры, который определяет язык системных сообщений, отображаемых в программе.
Необязательное поле. Ожидается одно из допустимых значение:
en-US
английский (США)
ru-RU
русский (Россия)
Значение по умолчанию: "en-US"
"SystemLocale": "ru-RU"
Настройки подключения к базе данных
Обязательное поле Database
зачастую содержит основные поля для доступа к базе данных:
Database - имя базы данных;
ServerPort - порт сервера базы данных;
Password - пароль для доступа к серверу базы данных.
Поле ServerAddress не указывается, так как служба Engine и сервер СУБД чаще всего находятся на одном компьютере. Для остальных полей достаточно значений по умолчанию.
"Database": {
"ServerAddress": "localhost",
"ServerPort": "5432",
"User": "postgres",
"Password": "postgres",
"Database": "template_project"
}
ServerAddress
IP-адрес или доменное имя компьютера, на котором развернута база данных.
Необязательное поле. Любое значение будет переведено в текстовое.
Значение по умолчанию: "localhost"
"ServerAddress": "localhost"
ServerPort
Порт компьютера, который слушает сервер базы данных.
Необязательное поле. Любое значение будет переведено в текстовое.
Значение по умолчанию: "5432"
"ServerPort": "5432"
User
Имя пользователя, имеющего доступ к серверу СУБД, под которым служба Engine будет обращаться к базе данных.
Необязательное поле. Любое значение будет переведено в текстовое.
Значение по умолчанию: "postgres"
"User": "postgres"
Password
Пароль пользователя, имеющего доступ к серверу СУБД, под которым служба Engine будет обращаться к базе данных.
Необязательное поле. Любое значение будет переведено в текстовое.
Значение по умолчанию: "postgres"
"Password": "postgres"
Database
Имя базы данных, с которой будет взаимодействовать служба Engine.
Обязательное поле. Любое значение будет переведено в текстовое.
"Database": "template_project"
Пути до папок клиентских частей
FormsFolder
Путь до папки, в которой лежат xml-файлы desktop-версии WT-приложения. Если в файле конфигурации desktop-клиента настройка UseSourceCache имеет значение True, то сервер будет отдавать на клиентскую машину xml-файлы из этой папки.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"FormsFolder": "C:\\WorkflowSystems\\Projects"
BinaryPath
Абсолютный путь до папки, в которой лежат бинарные файлы desktop-версии WT-приложения. Если в файле конфигурации desktop-клиента настройка CheckBinaryFiles имеет значение True, то сервер будет отдавать на клиентскую машину бинарные файлы из этой папки.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"BinaryPath": "C:\\WorkflowSystems\\Distr\\WorkflowForms"
TempUpdateDir
Абсолютный путь до папки временных файлов обновления. Так же в папке хранятся файлы, которые позволяют откатиться к ним, т.е. предоставляют возможность восстановить старую версию программы и базы данных.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"TempUpdateDir": "C:\\WorkflowSystems\\TempUpdateTest"
WebFormsFolder
Путь до папки, в которой лежат xml-файлы web-версии WT-приложения.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"WebFormsFolder": ""
WebBinaryPath
Абсолютный путь до папки, в которой лежат бинарные файлы web-версии WT-приложения.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"WebBinaryPath": ""
MobileFormsFolder
Путь до папки, в которой лежат xml-файлы mobile-версии WT-приложения.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"MobileFormsFolder": "C:\\WorkflowSystems\\Projects"
MobileBinaryPath
Абсолютный путь до папки, в которой лежат бинарные файлы mobile-версии WT-приложения.
Необязательное поле. Ожидается абсолютный путь до папки.
Значение по умолчанию: отсутствует
"MobileBinaryPath": "D:\\WorkflowEngine\\_Template.v3\\MobileBin"
Настройки файловых хранилищ
Storages
Поле содержит массив объектов, описывающих настройки файловых хранилищ.
Имя вложенного объекта (элемента массива) определяет ключ, по которому можно обратиться к хранилищу в тэге Storage команды UploadFileCommand.
"Storages": {
"Default": {
"Path": "Upload"
},
"Audio": {
"Path": "D:\\WorkflowSystems\\Audio",
"Format": "yyyy\\\\MM\\\\dd"
}
}
Path
Путь до корневой папки хранилища.
Обязательное поле. Ожидается абсолютный путь или относительный путь, относительно корневой папки службы Engine.
"Path": "D:\\WorkflowSystems\\Audio"
Format
Задает структуру вложенных папок.
Необязательное поле. Если не указано, то файлы будут сохраняться в корневую папку хранилища.
"Format": "yyyy\\\\MM\\\\dd"
Службы WorkflowServer
Поле WorkflowServer содержит настройки для системы лицензирования, службы обновления и HelpDesk.
"WorkflowServer": {
"ServerUrl": "http://lic.wfsys.ru:7070",
"WorkflowEngineUpdateService": {
"Name": "WorkflowEngineUpdateService",
"Port": 9090
},
"HelpDesk": {
"Enabled": true
},
"Update": {
"Enabled": true
}
}
ServerUrl
Задает IP-адрес и порт сервера службы лицензирования.
Обязательное поле.
"ServerUrl": "http://lic.wfsys.ru:7070"
WorkflowEngineUpdateService
Настройки службы обновления серверной части WT-программы: имя службы и порт, на котором будет запускаться служба. Служба всегда запускается на localhost для повышения вероятности запуска службы.
"WorkflowEngineUpdateService": {
"Name": "WorkflowEngineUpdateService",
"Port": 9090
}
HelpDesk
Признак, включающий возможность отправлять обращения в сервис HelpDesk.
Необязательное поле. Для вложенного поля Enabled ожидается логическое значение.
Значение по умолчанию: false
"HelpDesk": {
"Enabled": true
}
Update
Признак, включающий возможность взаимодействия со службой обновления.
Необязательное поле. Для вложенного поля Enabled ожидается логическое значение.
Значение по умолчанию: false
"Update": {
"Enabled": true
}
Резервное копирование
BackupCloudPath
Задает адрес облачного хранилища, в которое будет происходить резервное копирование.
Необязательное поле.
Значение по умолчанию: отсутствует
"BackupCloudPath": ""
BackupCloudInterval
Задает интервал времени, каждый день в течение которого будет производиться резервное копирование. Время начала и окончания периода резервирования задается с точностью до минуты.
Необязательное поле.
Значение по умолчанию: "01:00"
и "05:00"
"BackupCloudInterval": {
"Start": "01:00",
"Finish": "05:00"
}
Настройки логирования
LogLocale
Задает код культуры, который определяет язык сообщений об ошибке публикуемых в журнале событий Windows.
Необязательное поле. Ожидается одно из допустимых значение:
en-US
английский (США)
ru-RU
русский (Россия)
Значение по умолчанию: "en-US"
"LogLocale": "ru-RU"
SchedulerLog
Признак, включающий логирование работы планировщика задач, встроенного в платформу. Пишутся метки начала и окончания выполнения задач.
Необязательное поле. Ожидается логическое значение.
Значение по умолчанию: false
"SchedulerLog": false
Serilog
Настройка логирования. Подробнее на github.com.
%CONTENT_ROOT% - системная переменная указывающая на папку с сервером.
"Serilog": {
"MinimumLevel": "Warning",
"WriteTo": [
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "RollingFile",
"Args": {
"pathFormat": "%CONTENT_ROOT%\\Logs\\log-{Date}.txt",
"fileSizeLimitBytes": null,
"retainedFileCountLimit": null,
"outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}",
"buffered": false
}
},
{
"Name": "LiterateConsole",
"Args": {
"outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}"
}
},
{ "Name": "Debug" },
{
"Name": "EventLog",
"Args": {
"logName": "Workflow Technology",
"source": "Workflow Engine",
"outputTemplate": "{Timestamp:o}{NewLine}[{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}){NewLine}{Message}{NewLine}{Exception}{NewLine}"
}
}
]
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId", "WithRequestId" ]
}
Отладка
В режиме отладки сервер пишет в файлы информацию:
время начала и время окончания выполнения запроса к базе данных;
время начала и время окончания обработки запроса от клиентской части.
Для работы с логами отладки используется дополнительная утилита - WorkflowVisualizer.
DebugMode
Признак, включающий на сервере режим отладки.
Необязательное поле. Ожидается логическое значение.
Значение по умолчанию: False
"DebugMode": "True"
DebugPath
Путь до папки, в которую будут сохраняться файлы логов клиентской части.
Необязательное поле. Ожидается абсолютный путь.
Значение по умолчанию: "D:\\DebugDC"
"DebugPath": "D:\\DebugDC"
PerformanceChecking
Задает настройки проверки производительности: служба Engine каждый час выполняют проверку, насколько загружена оперативная память.
Необязательное поле.
"PerformanceChecking": {
"Enabled": "False",
"Delayed": "True",
"RamThreshold": 2048
}
Enabled
Признак, включающий проверку производительности.
Необязательное поле. Ожидается логическое значение.
Значение по умолчанию: false
Delayed
Признак, включающий задержку в 5 минут при старте проверки производительности.
Необязательное поле. Ожидается логическое значение.
Значение по умолчанию: true
RamThreshold
Задает ограничение по объему используемой оперативной памяти (в МБ).
Необязательное поле. Ожидается целочисленное положительное значение.
Значение по умолчанию: 2048
Условия выполнения проверки:
Проверка запускается через 5 минут после старта сервера;
Если зафиксировано превышение, то далее проверки выполняются каждую минуту. Если зафиксировано 15 превышений подряд, то запускается логирование;
Если превышения нет, то следующая проверка выполнится через час.
Логи пишутся в папку C:\ProgramData\Workflow Systems в файлы:
PerformanceHighUsage.txt - значение проверки;
PerformanceHighUsage_YYYY-MM-DD-HH24.txt - записывается время начала и окончания всех операций и действий на форме.
Настройки HTTPS
Web-сервер Kestrel поддерживает защиту конечных точек с помощью HTTPS. Для повышения безопасности передаваемых между клиентом и сервером данных, протокол HTTPS предусматривает их шифрование с помощью протокола TLS.
Для HTTPS требуется сертификат TLS, который должен хранится на сервере и быть явно настроен.
Подробнее про настройку HTTPS можно прочитать в статье.
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1"
},
"Certificates": {
"Default": {
"Path": "D:\\WorkflowEngine\\Template.v3\\certificate-https.pfx",
"Password": "niBCev&n2FNA#clw"
}
}
}
Protocols
Задает версию протокола HTTP.
Доступные значения описаны в разделе Настройка протоколов HTTP официальной статьи от Microsoft.
Path
Задается абсолютный путь до файла сертификата TLS.
Password
Задается пароль для доступа к данным сертификата TLS.
Last updated