大约半天后,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有一些计数器可以显示队列请求和错误的数量。 您可能能够在失败时观察到这一趋势,并可能知道根问题何时首先触发。