【发布时间】:2008-09-15 13:12:55
【问题描述】:
我正在开发一个 ASP.NET Web 应用程序,当我尝试在 Visual Studio 中对其进行调试时,它似乎工作正常。但是,当我模拟重负载时,IIS 崩溃而没有任何痕迹——系统日志中的日志条目非常通用,“万维网发布服务意外终止。它已经完成了 4 次。” 如何从 IIS 获取更多信息来解决此问题?
【问题讨论】:
我正在开发一个 ASP.NET Web 应用程序,当我尝试在 Visual Studio 中对其进行调试时,它似乎工作正常。但是,当我模拟重负载时,IIS 崩溃而没有任何痕迹——系统日志中的日志条目非常通用,“万维网发布服务意外终止。它已经完成了 4 次。” 如何从 IIS 获取更多信息来解决此问题?
【问题讨论】:
下载适用于 Windows 的调试工具: http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
Windows 调试工具有一个脚本 (ADPLUS),允许您在进程崩溃时创建转储: http://support.microsoft.com/kb/286350
命令应该类似于(如果您使用的是 IIS6):
cscript adplus.vbs -crash -pn w3wp.exe
此命令会将调试器附加到工作进程。当崩溃发生时,它会生成一个转储文件(一个 *.DMP 文件)。
您可以在 WinDBG 中打开它(也包含在 Windows 调试工具中)。文件 > 打开故障转储...
默认情况下,WinDBG 会显示(在命令行旁边)进程崩溃的线程。
您需要在 WinDBG 中做的第一件事是加载 .NET Framework 扩展:
.loadby sos mscorwks
然后,您将显示托管调用堆栈:
!clrstack
如果线程没有运行托管代码,那么您需要检查本机堆栈:
kpn 200
这应该会给你一些想法。要继续进行故障排除,我建议您阅读以下文章:
【讨论】:
asp.net process 的崩溃转储应该给你tons of info..如果你想快速获得一些关于为什么进程被回收的信息,try this tip from Scott Gu.. Health monitoringasp.net 2.0的特性也值得一看..
【讨论】:
【讨论】:
关键是“没有任何痕迹”。您需要输入自己的跟踪登录来创建一些聊天。然后,您将能够发现聊天停止的位置。
【讨论】:
试试这个https://www.leansentry.com/ - 自动诊断服务器问题的轻量级应用程序监控!
【讨论】: