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>

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

< connectionStrings configSource="_localConfig\localConnectionStrings.config" />

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

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>

По умолчанию возможность работать с SQL напрямую из интерфейса системы отключена.

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

ConcurrentSessionMinLengthInMinutes

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

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

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

Проверка конкурентного доступа происходит при каждом веб-запросе.

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

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

Для оптимизации используется кеш ConcurrentSessionsExpirationCache.

Если в кеше ConcurrentSessionsExpirationCache есть дата Expires, и она еще не наступила, проверка лицензии будет пропущена.

Если дата Expires наступила, запрашивается конкурентный доступ: если есть свободная сессия, пользователь продолжает работу. В кеш кладется значение Expires выданной сессии из колонки dbo.UserSessions.Expires.

Режим аутентификации в 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 является значением по умолчанию

Кэширование

IsCachingDisabled

 

 

Указывает, отключено ли кэширование

Возможные значения: true (отключено) / false (не отключено)

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

Миграции

CodeMigrationsIsEnabled

Указывает, будут ли проводиться миграции или нет.

Возможные значения: true (будут проведены миграции) / false (не будут проведены миграции)

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

IsolationLevel

MigrationIsolationLevel

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

Serializable = 0

RepeatableRead = 1

ReadCommitted = 2

Snapshot = 4

Chaos = 5

Unspecified = 6

Обновление кэша при импорте конфигурации

DisableAllCachesUpdate

Отключение автоматического запуска обновления кэша после импорта конфигурации.

Возможные значения: true (Отключено) / false (Включено)

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

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

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>

Отключение AQB

DisableAQB

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

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

Включение Мультифактора

MultifactorIsEnabled

Чтобы включить Мультифактор, ключ MultifactorIsEnabled должен быть установлен в значение true. По умолчанию включено.

Двухфакторная аутентификация через систему MULTIFACTOR активируется в настройках системы. Подробнее о настройке мультифактора.

MultifactorHost

Адрес хоста, где должен быть включен/отключен Мультифактор

Размер загружаемых файлов

MaxRequestLength

Длина запроса (ограничение размер загружаемых файлов)

Если ключ не задан, значение по умолчанию = int.MaxValue (2147483647) = 2 Гб

Ограничение длины тела файла

MaxAllowedContentLength

Максимальная допустимая длина содержимого.

Максимальное значение — 4 294 967 295 байт, что примерно равно 3,99 ГБ.

Отключение разрешенных доменов

IgnoreDomainCheck

Для отключения разрешенных доменов, что позволяет подключаться с любого доменного имени, ключ IgnoreDomainCheck быть установлен в значение true.

Использование небезопасных cookie для аутентификации.

AuthUseInsecureCookies

Разрешает использование небезопасных (не secure) файлов cookie для аутентификации.

Возможные значения: true (разрешено) / false (запрещено).

Значение по умолчанию — false.

warning_icon  Рекомендуется устанавливать ключ в значение true только в том случае, если приложение "Первая Форма" работает по протоколу http. Для работы приложения через https разрешение использования может не соответствовать требованиям безопасности.

Интерфейс 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

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

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

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

FilesExtensionsToNotCache

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

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

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

useNewHierarchy

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

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

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

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

поиск Sphinx

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

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

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

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