如何通过编程方式覆盖web.config设置

4
当我在web.config中有特定的设置,比如会话状态配置,并且我想在Application_Start时以编程方式确定配置,我该怎么做。我试图在每个环境中拥有稍微不同的配置。 您有什么建议吗?

你不想获得额外的声望点 --> 666 - JohnIdol
2个回答

3
我认为在运行时更改web.config设置而不重新加载应用程序是不可能的。正如@ChristopheD答案中所示的文章,您可以在运行时读取和写入web.config设置,但保存它们会在写出更改时重新启动应用程序。我相信一旦您的应用程序达到可以执行此操作的点,ASP.NET已经读取了它们,在运行时更改它们而不保存将没有任何效果。
顺便说一下,我建议不要在运行时进行这种特定于环境的操作。更好的方法是在构建或部署时更改每个环境的web.config。MSDeploy有一种方法可以做到这一点,并且该功能即将到来VS2010。

为了使配置更改生效,必须重新启动AppDomain。对于ASP.NET应用程序而言,这意味着重新启动您的应用程序,带来所有后果(丢失缓存内容,对于内存中的会话来说,还有所有用户会话等)。 - UserControl
谢谢你的回答,虽然不完全符合我的期望,但我会仔细研究MSDeploy。 - Teun D

1

2
该示例展示了如何更改web.config文件。然而,正如问题中所述,我不想覆盖该文件以避免重新启动。ASP.NET在您保存文件之前不会看到您进行的任何更改。 - Teun D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接