服务不可用 – 应用程序池禁用错误…任何人都知道为什么?

我们的一小部分网站偶尔会遇到一个对我们来说很神秘的错误。

我们的build立是:

  • Windows Server 2003
  • IIS6
  • .NET 3.5
  • 我们有大约35个在IIS上运行的网站
  • 每个站点都有自己的应用程序池
  • 每个应用程序池都有标识:networking服务

症状是:站点的应用程序池停止,当您浏览到站点时,您只能看到:

暂停服务

在事件日志中,我们有一个错误 ,如下所示:

应用程序池“AppPool1”由于服务该应用程序池的进程中的一系列故障而被自动禁用。

我们有几个警告导致错误,看起来像这样( 注意:警告看起来是相同的,除了进程ID):

服务应用程序池“AppPool1”的进程遭遇了与万维网发布服务的致命通信错误。 进程ID是“292”。 数据字段包含错误编号。

这是什么原因造成的? 正如我所说,它不会经常发生…最后一次是大约6个月前…它通常发生在同一个网站/应用程序池。

有任何想法吗?

干杯!

应用程序池被禁用的原因是因为快速失败保护打开,所以在一些应用程序池故障后,将停止池而不是重新启动它。

您可以禁用快速失败保护,但显然这意味着您仍然收到错误,并且每次只重新启动应用程序池; 最好的解决办法是找出为什么它首先崩溃。

不幸的是,从IIS获得的错误消息并不是非常有用,所以为了更好地了解导致崩溃的原因,您需要运行IISdebugging工具(如DebugDiag或IISState)以获取有关该错误的更多信息。

这可能是一个网站正在运行的特定代码的问题,或者如果它发生在多个网站,那么也许是更一般的东西。 运行这些工具应该让你更好地了解是什么造成的。