IIS .NET网站中断故障排除

时间:2013-11-22 10:39:42

标签: asp.net iis windows-server-2008-r2 connection-timeout

昨晚,我的Win 2008 R2(IIS 7.5)服务器上托管的其中一个网站(.NET 4.0表单)开始超时,为所有连接的用户抛出以下错误。

TYPE     System.Web.HttpException
MESSAGE  Request timed out.
DETAIL   System.Web.HttpException (0x80004005): Request timed out.

中断仅限于IIS内的一个网站,其他网站继续正常工作。

不幸的是,我无法确定网站暂停的原因。以下是我采取的步骤:

  • 我做的第一件事就是看任务管理器,它显示了正常的CPU和内存使用情况。网络活动也很温和。

  • 然后我打开IIS查看“工作进程”下的实时连接。大约有60个实时连接,所以它看起来与DDoS无关。

  • 检查数据库连接(托管在单独的服务器上),一切正常!

  • 然后我重置IIS上的网站。这不起作用

  • 我试图做一个完整的iisreset ...但仍然没有运气:(

  • 最后(在一些胁迫下)我唯一能想到的就是重启服务器。

重新启动服务器工作但我很紧张,不知道为什么会发生这种情况。任何人都可以推荐我未能进行的任何检查吗?是否有正式的清单来处理这些IIS问题?我已经查看了IIS日志,但在运行中断时看不到任何异常。

非常感谢任何有用资源的指针或链接,以帮助我理解和减轻这种情况。

修改

当天我登录服务器的唯一一次是向IIS Web Deploy添加一个额外的Web处理程序组件(用于远程部署)。我怀疑这是因为服务器工作了6个小时后导致中断。

1 个答案:

答案 0 :(得分:2)

因为iisreset没有帮助而你必须重新启动整个机器,我怀疑这是全球资源短缺,而且大多数使用的网站(或大多数资源消耗)受到影响。可能是因为没有可用的RAM,由于一些故障呼叫导致网络连接拥塞(例如,许多CLOSE_WAIT套接字耗尽连接池,我们已经看到由于外部服务故障而在生产中)。它也可能是一个特定的客户端问题,在机器重启后断开连接,最终问题就消失了。

我会从:

开始

历史分析

  • 查看事件查看器以查看该段时间内的任何错误/警告,
  • 虽然您已经查看了IIS日志,但我会在Log Parser Lizard的帮助下再次进行此操作,以制作一些统计信息,例如每个客户端的请求数,每个客户端的网络带宽,每个客户端的平均响应时间等等

<强>监控

  • 持续监控性能计数器:
    • \Processor(_Total_)\% Processor Time
    • \.NET CLR Exceptions(_Global_)\# of Exceps Thrown / sec
    • \Memory\Available MBytes
    • \Web Service(Default Web Site)\Current Connections(根据您的网站名称),
    • \ASP.NET v4.0.30319\Request Wait Time
    • \ASP.NET v4.0.30319\Requests Current
    • \ASP.NET v4.0.30319\Request Queued
    • \Process(XXX)\Working Set
    • \Process(XXX)\% Processor Time(每个w3wp流程为XXX),
    • \Network Interface(XXX)\Bytes total / sec
  • 在失败期间运行Performance Analysis of Logs (PAL) Tool以对性能计数器数据进行非常详细的分析,
  • 运行netstat -ano来分析网络流量(或TCPView工具更好)

如果所有这些都不会导致任何结论,请创建一个Debug Diagnostic rule来为长时间运行的请求创建进程的内存转储,并使用WinDbg和PSSCor扩展进行.NET调试分析。