![如何调试 IIS 问题:排队的请求突然增加,而服务器无法响应?](https://linux22.com/image/481232/%E5%A6%82%E4%BD%95%E8%B0%83%E8%AF%95%20IIS%20%E9%97%AE%E9%A2%98%EF%BC%9A%E6%8E%92%E9%98%9F%E7%9A%84%E8%AF%B7%E6%B1%82%E7%AA%81%E7%84%B6%E5%A2%9E%E5%8A%A0%EF%BC%8C%E8%80%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E5%93%8D%E5%BA%94%EF%BC%9F.png)
我有一台 IIS 6 服务器,使用传统 ASP 和 ASP.NET 混合方式为应用程序提供服务。
我越来越遇到这样的问题:ASP.NET 请求队列中的请求数(使用 ASP.NET\Requests Queued 计数器观察)开始增加到服务器无法再处理请求的程度。这种情况发生在排队请求开始增加的三到四分钟后。回收应用程序池可恢复服务。
正常情况下,排队的请求为零,偶尔会出现小幅峰值,但似乎每天有一两次,许多请求阻塞了队列,排队的请求开始增加。
我怀疑存在网络问题导致客户端失去连接(并重新提交他们的请求),并且尽管失去客户端,队列中的请求仍会继续。
答案1
我发现 MS 跟踪诊断工具 (IISReqMon) 可以从以下列表中找到“用于 IIS 故障排除和 IIS7 的有用工具和附加组件”将向我提供有关应用程序池中当前工作进程及其请求的信息。
答案2
在调试方面没有太大帮助,但我怀疑是代码死锁而不是网络死锁,因为 IIS 在连接方面调试得很好。我不希望它那样失败。
我猜您的网站最近比较繁忙,因此出现死锁问题。