【问题标题】:Is it possible to change web.config without ending all user sessions?是否可以在不结束所有用户会话的情况下更改 web.config?
【发布时间】:2016-08-26 19:22:17
【问题描述】:

是否可以在不为站点上的所有用户提供新会话的情况下更改 web.config 文件?

【问题讨论】:

    标签: asp.net session 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 article

    【讨论】:

    • 这很好用,我不必更改我的应用程序来使用 InProc 以外的东西。
    【解决方案2】:

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

    sessionState Element(包括配置SqlServer模式的注意事项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2015-10-14
      • 2011-05-15
      • 1970-01-01
      相关资源
      最近更新 更多