您能告诉我当我们在 IIS 服务器上编辑 Web.config(在运行时)时究竟发生了什么吗?
依赖于 web.config 的应用程序是否会自动重启?如果是,是否可以取消自动重启(或重新加载 web.config)?
答案1
每当您“触摸” web.config 时,ASP.NET AppDomain 都会重新启动。可以关闭文件夹的文件更改通知 (FCN),但如果可以的话,这通常不是最好的选择。如果您确实将其关闭,则意味着您需要手动回收应用程序池以使更改生效。
在 IIS7 之前,只有 ASP.NET 更改才会导致 AppDomain 回收,但对于 IIS7 和 web.config 中的许多设置,这是一个更常见的问题。例如,更改 IIS 7 管理器中的默认文档将导致 AppDomain 回收。
理想情况下,您只需要降低变化率,或者有时将更改应用于 applicationHost.config(不会导致 AppDomain 回收)而不是 web.config。
答案2
当您更改 web.config 时,使用 web.config 的应用程序将重新启动,这里有更多信息:
http://msdn.microsoft.com/en-us/library/ms178473.aspx
我不知道有什么方法可以防止这种情况发生(并且我不确定你为什么要这样做 - 也许你可以提供一些你想要实现的更多细节)。
答案3
仅供参考 - 在 ASP.NET 2.0 中,您可以使用内置的健康监测事件来记录应用程序重启以及重启的原因。这将使您能够清楚地记录重启发生的时间和频率。这可以通过编辑机器的主 web.config 来实现。
了解更多信息: