Debugging 在负载较重的情况下为ASP.NET应用程序提供服务时,IIS崩溃。如何排除故障?

Debugging 在负载较重的情况下为ASP.NET应用程序提供服务时,IIS崩溃。如何排除故障?,debugging,iis,crash,Debugging,Iis,Crash,我正在处理一个ASP.NET web应用程序,当我尝试在Visual Studio中调试它时,它似乎工作正常。然而,当我模拟重载时,IIS崩溃而没有任何痕迹——系统日志中的日志条目非常通用,“万维网发布服务意外终止。它已经完成了4次。” 如何从IIS获取更多信息以解决此问题?关键是“无任何跟踪”。你需要把你自己的跟踪日志记录到创建一些聊天。然后,您将能够发现聊天停止的位置。的崩溃转储应该会给您提供..如果您想快速获得有关流程为何被回收的一些信息。。 asp.net 2.0的功能也值得一看。asp

我正在处理一个ASP.NET web应用程序,当我尝试在Visual Studio中调试它时,它似乎工作正常。然而,当我模拟重载时,IIS崩溃而没有任何痕迹——系统日志中的日志条目非常通用,“万维网发布服务意外终止。它已经完成了4次。” 如何从IIS获取更多信息以解决此问题?

关键是“无任何跟踪”。你需要把你自己的跟踪日志记录到创建一些聊天。然后,您将能够发现聊天停止的位置。

的崩溃转储应该会给您提供..如果您想快速获得有关流程为何被回收的一些信息。。 asp.net 2.0的功能也值得一看。

asp.net跟踪。。。
下载Windows调试工具:

Windows调试工具有一个脚本(ADPLUS),允许您在进程崩溃时创建转储:

命令应该类似于(如果您使用的是IIS6):

此命令将调试器附加到工作进程。当崩溃发生时,它将生成一个转储文件(一个*.DMP文件)

您可以在WinDBG中打开它(也包括在Windows调试工具中)。文件>打开崩溃转储

默认情况下,WinDBG将显示进程崩溃的线程(在命令行旁边)

在WinDBG中,您需要做的第一件事是加载.NET Framework扩展:

.loadby sos mscorwks
然后,您将显示托管调用堆栈:

!clrstack
如果线程未运行托管代码,则需要检查本机堆栈:

kpn 200
这应该会给你一些想法。要继续进行故障排除,我建议您阅读以下文章:


试试这个-轻量级应用程序监控,自动诊断服务器问题

伙计,这是痛苦。我讨厌它。
kpn 200