Можно ли изменить web.config без завершения всех пользовательских сессий? - PullRequest
10 голосов
/ 22 сентября 2009

Можно ли изменить файл web.config, не давая всем пользователям сайта нового сеанса?

Ответы [ 2 ]

8 голосов
/ 22 сентября 2009

Вы можете переместить изменчивые части файла web.config во внешние файлы, а затем настроить IIS, чтобы не перезапускать приложения при изменении этих файлов.

В приведенном ниже примере параметры приложения и строки подключения были перемещены в другой файл, за пределами файла web.config.

<?xml version="1.0"?>
<configuration>

  <appSettings configSource="appSettings.config"/>

  <connectionStrings configSource="connections.config"/>   

</configuration>

Как только это будет сделано, вы можете вносить изменения в настройки приложения (или что-либо еще, что вы добавили во внешний файл) без редактирования файла web.config.

Вы также можете посетить machine.config и поиграть с атрибутом restartOnExternalChanges, но его следует использовать с осторожностью, поскольку это может привести к непредвиденным последствиям. Некоторые разделы, такие как app-settings, уже имеют значение false.

<section name="appSettings" restartOnExternalChanges="false">

Более подробная информация доступна в этой статье OdeToCode .

3 голосов
/ 22 сентября 2009

Если вы не используете состояние сеанса InProc, то ваши сеансы должны сохраняться при перезапуске приложения.

Элемент sessionState (включая примечания по настройке режима SqlServer.

...