Show/Hide Toolbars

Руководство по тех. обслуживанию

Описание ключей web.config

Ссылки Назад Вверх Вперед

Что определяет

Ключ или тег

Описание и примеры

Конфигурация


<configSections>
  <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral" requirePermission="true" />
</configSections>

Соединение с БД

connectionString

<connectionStrings>
  <add name="TCConnectionString" connectionString="xxxxxxxxx" providerName="System.Data.SqlClient"/>
</connectionStrings>

Пример connectionString:

connectionString="packet size=4096;user id=<user_login>;data source=<DBname>;persist security info=True;initial catalog=<catalog_name>;password=<user_password>;Max Pool Size=2500; MultipleActiveResultSets=true"

Имперсонирование пользователя

impersonate

Для работы в режиме однократной синхронизации почтового клиента необходимо, чтобы была включена Windows-авторизация, а также режим имперсонирования:

<identity impersonate="true" />

Ключ фермы

machineKey

Требуется для SingleSignOn между серверами "Первой Формы" и/или приложениями (например, "Первой Формой" и Личным кабинетом).

<machineKey validationKey="xxx" decryptionKey="xxx" validation="SHA1" decryption="AES" />

Настройки авторизации

authentication

Аутентификация Windows (Active Directory):

<authentication mode="Windows"/>

Аутентификация Forms (через БД сайта)

Начиная с версии 2.184:

тега authentication быть не должно. См. Настройка аутентификации по токенам.

До версии 2.184:

<authentication mode="Forms">
  <forms name="TaskCenterAndCZAuth" loginUrl="Login.aspx" slidingExpiration="true" timeout="25" protection="All" path="/" domain="1forma.ru">
  </forms>
</authentication>

Редирект для разных доменных имен

SetCookieForUpperLevelDomain

Ключ SetCookieForUpperLevelDomain определяет, для какого домена будет задана cookie 1FormaAuth - для домена верхнего уровня (значение true) либо для полного доменного имени (false).

<add key="SetCookieForUpperLevelDomain" value="true"/>

Если ключ не указан в приложении, то по умолчанию считается, что для cookie задается полный домен.

Имеет смысл, если настроены несколько серверов, например, https://win.myDomain.ru и https://forms.myDomain.ru.

См. Настройка аутентификации по токенам.

Настройка сессии

sessionState

По умолчанию

<sessionState mode="Off" />

(все остальные атрибуты у sessionState можно удалить)

Но если в приложении развернут модуль опросов, то

<sessionState mode="InProc" />

Отдача контейнеров мобильных приложений, а также вызов отчетов FastReport из контекста задачи

TaskCenter.iOSClientServices.API

В зависимости от используемого протокола для корректной отдачи контейнеров мобильного приложения в файле web.config необходимо выставить соответствующий параметр в секции
<service name = "TaskCenter.iOSClientServices.API">

Если передача ведется по протоколу https:

<service name="TaskCenter.iOSClientServices.API">
    <endpoint address="" behaviorConfiguration="TaskCenter.iOSClientServices.APIAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="secureHttpBinding" contract="TaskCenter.iOSClientServices.API" />
</service>

Если передача ведется по протоколу http, то параметр bindingConfiguration="secureHttpBinding" не нужен, и строка имеет вид:

<service name="TaskCenter.iOSClientServices.API">

    <endpoint address="" behaviorConfiguration="TaskCenter.iOSClientServices.APIAspNetAjaxBehavior" binding="webHttpBinding" contract="TaskCenter.iOSClientServices.API" />

</service>

Путь к Swagger для тестирования API

ApplicationPath

В секции <appSettings> можно указать путь к Swagger:

<add key="ApplicationPath" value="https://адрес-приложения-1Форма" />

В этом случае обращение к Swagger будет идти по адресу:

https://адрес-приложения-1Форма/swagger/ui/index/

Если ключ не указан, то адрес будет браться из параметра "Путь к приложению" в Общих настройках приложения.

Сервер заданий по таймеру

IsJobServer

Чтобы на сервере запускались задания по таймеру, в секции <appSettings> должен быть ключ

<add key="IsJobServer" value="true"/>

Тогда при старте приложения будет запускаться механизм джобов.

Если ключ IsJobServer не указан, то задания будут запускаться на сервере с ключем IsMainServer

Задания по удалению неиспользуемых файлов

EnableRemovalOfUnusedFiles

RemovePreparedFileStorageFilesJob

Чтобы работали задания по таймеру, отвечающие за удаление неиспользуемых файлов, в секции <appSettings> должен быть ключ

<add key="EnableRemovalOfUnusedFiles" value="true"/>

warning_icon Если тестовый сервер использует рабочие ("боевые") файловые провайдеры, то включать данный ключ в web.config на тестовом сервере не рекомендуется. В противном случае файлы, удаленные в тестовом приложении в процессе тестирования, будут удалены также и в рабочем приложении.

Чтобы ограничить время выполнения самого длительного задания (RemovePreparedFileStorageFilesJob), можно указать максимальное число файлов, которое оно может обработать за один запуск:

<add key="RemovalOfUnusedFilesBatchCount" value="300000"/>

где 300 000 - это максимальное число файлов.

warning_icon Перед внесением изменений рекомендуется сделать резервную копию всех файловых провайдеров и основной БД.

Создание задач для календарных встреч из Exchange (при включенной синхронизации)

CreateTasksForAppointments

Если календарная встреча создается в "Первой Форме", создается задача в календарной категории и запись в таблице Appointments.

Если календарная встреча создается в Exchange, то в "Первой Форме" создается запись в таблице Appointments, а соответствующая задача в системной календарной категории может создаваться или не создаваться. Будет ли создаваться такая задача, определяет ключ CreateTasksForAppointments – если он имеет значение false, задача в системном календаре не создается, если true - создается. По умолчанию задача в "Первой Форме" создается, но чтобы ускорить синхронизацию, этот режим можно отключить.

 

<appSettings>
  <add key="CreateTasksForAppointments" value="false" />
</appSettings>

Доступность прямой работы с SQL из интерфейса администрирования

disableSQLShell

В интерфейсе администрирования "Первой Формы" можно отключить возможность работы напрямую с SQL. Это определяет ключ disableSQLShell:

Если ключ имеет значение true, то в разделе Сервисы не доступен пункт Выполнить SQL-запрос, а в редакторе смарт-выражений не отображается кнопка В TSQL. При попытке отредактировать хранимую процедуру будет возникать ошибка 403.

<appSettings>
  <add key="disableSQLShell" value="true" />
</appSettings>

Минимальная продолжительность активной сессии в минутах для конкурентной лицензии

ConcurrentSessionMinLengthInMinutes

После авторизации в системе пользователь попадает в список активных сессий. Время сессии по умолчанию - 1 минута, обновляется и увеличивается с активностью пользователя. После отсутстивия активности в системе конкурентная лицензия высвобождается

В ключе ConcurrentSessionMinLengthInMinutes можно задать время активной сессии:

<add key="ConcurrentSessionMinLengthInMinutes" value="1" />

 

Если в системе включены конкурентные лицензии, в значении ключа "ConcurrentSessionMinLengthInMinutes" должно быть установлено большее значение, чем значение "AuthTokenExpiresInMinutes" (время жизни access-токена в минутах).

Пример: ConcurrentSessionMinLengthInMinutes  = 60, AuthTokenExpiresInMinutes = 50, AuthTokenRefreshStrategy = "SlidingExpiration".

Это необходимо для обновления токена до окончания конкурентной сессии. В таком случае активная конкурентная сессия пользователя гарантированно будет продлена.

В противном случае могут возникать ситуации потери конкурентной сессии во время онлайн-работы пользователя , т.к. она завершилась раньше, чем произошло обновление токена.

Режим аутентификации в ActiveDirectory

ActiveDirectoryAuthenticationMode

Для аутентификации через ActiveDirectory в секции appSettings может быть установлен ключ ActiveDirectoryAuthenticationMode. Возможные значения: DirectoryServices, ldap, PrincipalContext. Значение по умолчанию - ldap

DirectoryServices - библиотека "system.directoryservices" (только для AD).

PrincipalContext - "System.DirectoryServices.AccountManagement", более высокоуровневая библиотека (только для AD). Необходимо выбрать значением для ActiveDirectoryAuthenticationMode,, если в лесе ActiveDirectory используются одноименные учетные записи.

ldap - "Novell.Directory.Ldap" - библиотека, работающая по протоколу LDAP. Работает как с AD, так и для других LDAP-серверов (к примеру, OpenLDAP).

Обновление кэшей через БД

ApplicationInstanceId

Для задания имени инстанса в секции appSettings необходим ключ ApplicationInstanceId. Его значение (т.е. имя инстанса) должно быть уникальным для каждого инстанса приложения.

<add key="ApplicationInstanceId" value="web-1901" />

Сигнализация для обновления кешей через БД

MessageBus

UseSqlServerBus

Ключ MessageBus определяет очередь сообщений. Возможные значения: None, Redis (устаревшее), RebusSQL (по умолчанию). При старте приложения "Первая Форма" соответствующая очередь сообщений Rebus очищается.

Чтобы работала сигнализация для обновления кешей, в секции appSettings ключ UseSqlServerBus должен быть установлен в значение true. Чтобы выключить Rebus, значение UseSqlServerBus должно быть явно задано как false

Быстрая регистрация модулей приложения

ExperimentalEnableOptimizedRegistration

Для быстрой регистрации модулей при старте приложения в секции appSettings ключ ExperimentalEnableOptimizedRegistration должен быть установлен в значение true.

warning_icon По умолчанию выключен, не рекомендуется к использованию

Обновление пользовательского кеша по сигналу от мастер-сервера

InvalidateUsersCacheByEvent

Чтобы включить обновление UsersCache по сигналу от мастер сервера, в секции appSettings ключ InvalidateUsersCacheByEvent должен быть установлен в значение true.

warning_icon По умолчанию выключен, не рекомендуется к использованию

Скачивание файлов одним архивом (групповая обработка в табличном представлении категории)


<dependentAssembly>
            <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.3.1.9" newVersion="1.3.1.9" />
</dependentAssembly>

Эти настройки должны присутствовать начиная с версии 2.232

Запуска Rebus на Postgre

PostgreQueueInterval

По умолчанию 120 секунд

Тип БД

UsePostgreSQLDatabase

В зависимости от БД переключается секция defaultConnectionFactory

PostgreSQL:

<defaultConnectionFactory type="Npsql.NpgsqlConnectionFactory, EntityFramework6.Npgsql"

SQL Server:

<entityFramework>

 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">

   <parameters>

     <parameter value="v11.0" />

   </parameters>

 </defaultConnectionFactory>

</entityFramework>

SSL при LDAP аутентификации

UseSecureLDAP

Использование SSL при аутентификации через LDAP. По умолчанию включено.

warning_icon Актуально, если ActiveDirectoryAuthenticationMode не указан, т.е. LDAP является значением по умолчанию

IsolationLevel

MigrationIsolationLevel

Указание IsolationLevel для приложения. Возможные значения:

Serializable = 0

RepeatableRead = 1

ReadCommitted = 2

Snapshot = 4

Chaos = 5

Unspecified = 6

Обновление токенов аутентификации

AuthTokenRefreshStrategy

Стратегия обновления токенов. Возможные значения:

SlidingExpiration (значение по-умолчанию) - автоматическое обновление токенов с периодичностью в зависимости от времени жизни.

None - обновление не предусмотрено, при истечении времени access-токена требуется повторная авторизация.

RefreshToken - используются refresh-токены (обновление токенов с помощью api-метода api/auth/token/refresh).

<add key="AuthTokenRefreshStrategy" value="None" />

Срок действия RefreshToken

AuthRefreshTokenExpiresInMinutes

Время жизни refresh-токена в минутах. Указывается, если в ключе "AuthTokenRefreshStrategy" установлено значение "RefreshToken".

По умолчанию время жизни refresh-токена - 30 дней.

<appSettings>
  <add key="AuthRefreshTokenExpiresInMinutes" value="1500" />
</appSettings>

Срок действия AccessToken

AuthTokenExpiresInMinutes

Время жизни access-токена в минутах.

<appSettings>
  <add key="AuthTokenExpiresInMinutes" value="1500" />
</appSettings>

В случае, если в системе включены конкурентные лицензии, время жизни accessToken'а необходимо установить меньшее, чем значение ключа "ConcurrentSessionMinLengthInMinutes" (минимальная длина конкурентной сессии в минутах) .

Пример: ConcurrentSessionMinLengthInMinutes  = 60, AuthTokenExpiresInMinutes = 50, AuthTokenRefreshStrategy = "SlidingExpiration".

Это необходимо для обновления токена до окончания конкурентной сессии. В таком случае активная конкурентная сессия пользователя гарантированно будет продлена.

В противном случае могут возникать ситуации потери конкурентной сессии во время онлайн-работы пользователя , т.к. она завершилась раньше, чем произошло обновление токена.

Отключение AQB

DisableAQB

 

 

Чтобы отключить AQB, в секции appSettings ключ DisableAQB должен быть установлен в значение true.

<appSettings>
  <add key="DisableAQB" value="true" />
</appSettings>

Интерфейс SPA

Доступность интерфейса SPA

EnableSpaSettings

Чтобы в пользовательском и администраторском интерфейсах "Первой Формы" были доступны элементы интерфейса SPA, ключ EnableSpaSettings должен быть установлен в значение true.

<appSettings>
  <add key="EnableSpaSettings" value="true" />
</appSettings>

Карточка задачи

UseNewMTF

Чтобы шапка карточки задачи отображалась в новом дизайне (заказчик, срок и исполнитель в одну строку, под ними категория и текст), нужно установить ключ UseNewMTF в значение true.

Если ключ UseNewMTF установлен в значение false или не определен, будет отображаться старый дизайн (слева столбец с основными параметрами и их значениями, справа - текст задачи).

warning_icon Ключ действует только в категориях, где используется шаблон по умолчанию

warning_icon Обратите внимание: добавленные ранее вставки не будут работать при переходе из старого МТФ в новый в SPA.

Подробнее о правилах миграции JS-вставок со старой карточки задачи в SPA.

UseNewMTFStyle

Чтобы отображалась карточка задачи с новой лентой комментариев и перепиской, нужно установить ключ UseNewMTFStyle в значение true.

Если ключ UseNewMTFStyle установлен в значение false или не определен, будет отображаться старый дизайн (лента комментариев внизу).

warning_icon Ключ действует только в категориях, где используется шаблон по умолчанию

Порталы

UseSpaPortals

Чтобы включить использование новых порталов в старом фронте, нужно установить ключ UseSpaPortals в значение true

Профиль пользователя

UseSPAProfilePage

В интерфейсе SPA для просмотра профиля пользователя используется ссылка ~/spa/user/profile/{userid}.

В старом интерфейсе по умолчанию используется ссылка ~/UserInfo.aspx?UserID={userid}.

Чтобы включить переадресацию со старого профиля на новый, нужно включить ключ UseSPAProfilePage.

Если UseSPAProfilePage установлен в значение true, то переадресация выполняется, если UseSPAProfilePage установлен в значение false или не определен - переадресация не выполняется

Страница авторизации

UseSpaLoginPage

Чтобы использовать страницу авторизации, адаптированную для интерфейса SPA, нужно установить ключ UseSpaLoginPage в значение true

Размер кэша файлов

FilesCacheSize

Ключ FilesCacheSize позволяет задать максимальный размер кэша, выделяемый для файлов. Значение указывается в МБ.

<add key="FilesCacheSize" value="1024" />

Файлы, которые не нужно кэшировать

FilesExtensionsToNotCache

Чтобы задать типы файлов, которые не следует  кэшировать, нужно использовать ключ FilesCacheSize. Расширения файлов указываются в строку через запятую:

<add key="FilesExtensionsToNotCache" value="docx,ppt,xlsx" />

Иерархия задач

useNewHierarchy

Чтобы использовать новую иерархию задач, нужно установить ключ useNewHierarchy в значение 1

Также настройки web.config можно посмотреть в разделах:

конфигурирование аутентификации по токенам

настройки для работы приложения в кластере

поиск Sphinx

публикация личного кабинета

модуль опросов (устаревшее)

модуль интеграции с 1С

синхронизация с Exchange