我们的少数站点中间会遇到一个对我们来说是个谜的错误。
我们的设置是:
- 视窗服务器 2003
- IIS6
- .NET 3.5
- 我们有大约 35 个网站在 IIS 上运行
- 每个站点都有自己的应用程序池
- 每个 App Pool 都有一个标识:Network Service
症状是:某个站点的应用程序池停止,当您浏览到该站点时,您只看到:
暂停服务
在事件日志中,我们有一个Error,如下所示:
由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池“AppPool1”被自动禁用。
我们有几个导致错误的警告,看起来像这样(注意:警告看起来是一样的,除了进程 ID):
为应用程序池“AppPool1”提供服务的进程与万维网发布服务发生了致命的通信错误。进程 ID 为“292”。数据字段包含错误号。
这是什么原因造成的?正如我所说,它不会经常发生......最后一次是大约 6 个月前......它通常发生在同一个站点/应用程序池中。
有任何想法吗?
干杯!
应用程序池被禁用的原因是因为快速故障保护已打开,因此在多次应用程序池故障后,它将停止池而不是重新启动它。
您可以禁用快速故障保护,但显然这意味着您仍然会收到错误,并且您每次都只是重新启动应用程序池;最好的解决方案是首先找出它崩溃的原因。
不幸的是,您从 IIS 获得的错误消息并不是非常有用,因此为了更好地了解导致崩溃的原因,您需要运行 IIS 调试工具(例如DebugDiag或IISState)来获取有关错误的更多信息。
这可能是一个站点正在运行的特定代码的问题,或者如果它发生在多个站点上,那么它可能是更普遍的问题。运行这些工具应该可以让您更好地了解导致它的原因。