Можно ли изменить файл web.config, не предоставив всем пользователям на сайте новый сеанс?
Можно ли изменить web.config без завершения всех сеансов пользователя?
Ответ 1
Вы можете переместить изменчивые части web.config во внешние файлы, а затем настроить IIS, чтобы не перезапускать приложения, когда эти файлы меняются.
В приведенном ниже примере параметры приложения и строки подключения были перенесены в другой файл за пределами web.config.
<?xml version="1.0"?>
<configuration>
<appSettings configSource="appSettings.config"/>
<connectionStrings configSource="connections.config"/>
</configuration>
После этого вы можете внести изменения в настройки приложения (или все остальное, что вы положили во внешний файл), не редактируя файл web.config.
Вы также можете посетить файл machine.config и сыграть с атрибутом restartOnExternalChanges, но это следует использовать с осторожностью, поскольку это может иметь непреднамеренные последствия. Некоторые разделы, такие как настройки приложения, уже имеют значение "false".
<section name="appSettings" restartOnExternalChanges="false">
Более подробная информация доступна в статье OdeToCode.
Ответ 2
Если вы не используете состояние сеанса InProc, ваши сеансы должны сохраняться во всех перезапусках приложений.
элемент sessionState (Включая примечания по настройке режима SqlServer.