IIS重新启动导致日志中的许多Connection_Abandoned_By_AppPool消息

大约半天后,IIS 6.0 ASP(VBScript)Web服务器似乎死亡。 它接受TCP连接(即我可以telnet localhost 80成功),但它不会返回任何响应。

当我重新启动服务器(通过我的电脑 – >pipe理 – > IIS – >所有任务 – >重新启动)时,我得到了很多条目在C:\WINDOWS\system32\LogFiles\HTTPERR\httperr1.log在重新启动说:

 ... 80 HTTP/1.1 GET / - 843545307 Connection_Abandoned_By_AppPool DefaultAppPool ... 80 HTTP/1.0 GET / - 843545307 Connection_Abandoned_By_AppPool DefaultAppPool ... 80 HTTP/1.0 GET / - 843545307 Connection_Abandoned_By_AppPool DefaultAppPool 

其中...指代行的前缀,例如

 2010-03-17 10:05:06 127.0.0.1 4927 127.0.0.1 80 

我的日志中有583条这样的行( Connection_Abandoned_By_AppPool )在重启时。

造成这个问题的原因是什么?

我的猜测是,与应用程序的东西失败,导致大量的请求排队。 当您重新启动IIS时,它无法赶上90秒超时,所以它必须强制结束所有未完成的请求。 所以,你在httperr中看到的是影响,而不是原因。

当它失败,做静态页面的工作? 这将告诉你,如果它是IIS或ASP是错误的。 你的telnettesting是一个很好的testing。 这是有帮助的。

检查重新启动之前的IIS日志,看看是否有任何其他的线索,哪些页面是服务器,或最后几个工作成功的请求是什么。 这可能会提供更多的线索。

Perfmon有一些计数器可以显示队列请求和错误的数量。 您可能能够在失败时观察到这一趋势,并可能知道根问题何时首先触发。