3

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

4

5 回答 5

4

下载适用于 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

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

http://msdn.microsoft.com/en-us/library/ms954594.aspx

于 2008-09-15T18:43:23.683 回答
3

asp.net 进程的崩溃转储应该为您提供大量信息..如果您想快速获取有关进程为何被回收的一些信息,请尝试 Scott Gu 的此提示.. asp.net 2.0 的健康监控功能也值得一看在..

于 2008-09-15T13:14:38.247 回答
1

ASP.NET 跟踪... http://www.beansoftware.com/ASP.NET-Tutorials/Tracing-ASP.NET.aspx

于 2008-09-15T13:15:28.277 回答
0

关键是“不留痕迹”。您需要输入自己的跟踪登录来创建一些聊天。然后,您将能够发现聊天停止的位置。

于 2008-09-15T13:13:57.657 回答
0

试试这个https://www.leansentry.com/ - 自动诊断服务器问题的轻量级应用程序监控!

于 2013-09-19T05:45:25.493 回答