是否可以在不结束所有用户会话的情况下更改web.config?

时间:2009-09-22 10:12:54

标签: asp.net session web-config

是否可以更改web.config文件而不为网站上的所有用户提供新会话?

2 个答案:

答案 0 :(得分:8)

您可以将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 article中提供了更多详细信息。

答案 1 :(得分:3)

如果您不使用InProc会话状态,那么您的会话应该在应用程序重新启动时保持不变。

  

sessionState Element(包括有关配置SqlServer模式的说明。