您能告诉我在IIS服务器上编辑Web.config时(在运行时)究竟发生了什么?


11

您能告诉我在IIS服务器上编辑Web.config时(在运行时)究竟发生了什么。

依赖于web.config的应用程序是否自动重新启动?如果是,是否可以取消自动重启(或重新加载web.config)?


您可以尝试打开文件访问审核,以查看IIS在修改后是否读取了web.config。
Eric H

Answers:


10

只要您“触摸” web.config,就会重新启动ASP.NET AppDomain。可以关闭文件夹的文件更改通知(FCN),但如果可以的话,通常不是最好的选择。如果您确实将其关闭,则仅意味着您需要手动回收应用程序池以使更改生效。

在IIS7之前,只有ASP.NET更改会导致AppDomain回收,但是对于IIS7和web.config中存在的许多设置,这是一个更常见的问题。例如,在IIS 7管理器中更改默认文档将导致AppDomain立即回收。

理想情况下,您只需要降低更改率,或者有时将更改应用到applicationHost.config(不会导致AppDomain回收)而不是web.config。


4

更改后,使用web.config的应用程序将重新启动,此处有更多信息:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

我不知道有什么方法可以防止这种情况的发生(而且我不确定您为什么要这么做-也许您可以提供更多有关要实现的目标的详细信息)。



3

[请注意]

我知道这是一个古老的例子,但这仍然值得一提。

Scott Forsyth-MVP答案不正确。

只要您“触摸” web.config,就会重新启动ASP.NET AppDomain。

错了


拂尘答案是技术上最正确,最完整的答案,因为它包含指向MSDN的链接,该链接包含一个重要的细节:

当需要重新启动应用程序时,ASP.NET将在重新启动应用程序域并加载新程序集之前,处理来自现有应用程序域和旧程序集的所有待处理请求。

当我们谈论Web服务时,这一点尤其重要。这表明安全地进行午间重启可能是可以的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.