IIS 7.5 中是否有任何设置可以防止它在默认文档更改时回收应用程序池?
据我所知,这在 IIS 6 中没有发生,我希望恢复这种行为。
答案1
这是由委托配置引起的。在 IIS7+ 中,可以将设置写入 web.config(默认情况下会这样做)。触碰 web.config 会导致 appdomain 回收。
您有几个解决方案。一个是关闭委派配置,但这需要考虑一些因素,例如确保您的 web.config 文件中没有设置,否则会导致网站崩溃。
另一种选择是使用配置编辑器或文本编辑器将您的设置应用到 applicationHost.config 而不是 web.config。
要了解更多信息,您可以观看我的第 17 周视频系列在 IIS 上。
答案2
实际上,你可以通过多种方式阻止回收:
- 设置
HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\FCNMode
为 DWORD 值1
(系统范围)。 <httpRuntime fcnMode="Disabled"/>
在你的web.config
(ASP.NET 4.5+)中使用- 放“禁用配置回收”至
True
(每个 AppPool) - 设置
numRecompilesBeforeAppRestart
为一个高值web.config
(据我所知,这是在 ASP.NET 1.0 和 1.1 上至少在一定程度上有效的唯一方法)。
有关每个选项的更多详细信息我在 StackOverflow 上的回答。