帮帮忙!我的 iis 6 Web 应用程序突然崩溃了。我查看了事件日志,但没有与 IIS 相关的错误。我需要您帮助指出到底出了什么问题及如何解决该问题。
对于这种情况我总是首先询问在服务器上发生了什么变化?您最近是否写入了大量新代码?您是否应用了任何服务包或即时修补程序?因为您指出在事件日志中没有错误,所以找到此问题的最佳方式是使用“调试诊断”以捕获内存转储。
下载调试诊断工具
首先您需要下载调试诊断工具。最近,调试诊断工具作为 IIS diagnostics Toolkit(英文)的一部分发行。
安装调试诊断工具
在“安装类型”对话框中,选择“典型安装”。
使用调试诊断工具
1、打开调试诊断工具。
将弹出如下所示的“新建规则向导”。
2、创建 Crash(崩溃)规则,然后单击“Next”(下一步)。
3、因为我们不知道哪个进程崩溃了,所以选择“All IIS Related processes”(所有 IIS 相关的进程),然后单击“Next”(下一步)。
4、此时,您不需要设置任何高级配置选项,所以请单击“Next”(下一步)。
5、键入规则名称,然后输入 userdump 位置的路径。
注意:请记住,这些内存转储可能会非常大,所以请确保选择有大量空闲磁盘空间的分区。
1、单击“Next”(下一步),选择“Activate therule now”(立即激活规则),然后单击“Finish”(完成)。
主调试诊断工具窗口显示了刚创建的规则。请注意,在包含您规则的那一行,Userdump 计数设置为 0。下次 IIS 崩溃时,调试诊断工具将捕获内存转储,您会看到 Userdump 计数将变为 1。
分析内存捕获
1、打开调试诊断工具,然后单击“Advanced Analysis”(高级分析)选项卡。
2、在 Data Files(数据文件)部分,单击“Add Data Files”(添加数据文件)按钮,然后添加调试诊断工具刚才为您创建的转储文件。
3、突出显示 Available Analysis Scripts(可用分析脚本)部分的 Crash/Hang Analyzers(崩溃/挂起分析器)脚本,然后单击“Start Analysis”(开始分析)按钮。这将启动分析脚本,它将生成一份基于 HTML 的详细报告,说明在系统崩溃时 IIS 及其相关进程的运行情况。如果分析脚本在内存转储中发现了一些需要关注的问题,它会在报告的顶部将其显示出来并给出可行的解决方案。
在未来的某个专栏中,我将讨论使用在以下网址处提供的 Windows 调试工具进行内存转储的高级分析:http://www.microsoft.com/whdc/devtools/debugging/default.mspx。
有关其他关于 Debug Diagnostics 1.0 的更多培训信息,请访问 IIS Webcast Series(英文)并查看下面的网络广播:
IIS Architecture Overview(英文)
Overview of Debugging Tools(英文)
The Ins and Outs of Hangs in IIS(英文)
The Inside Scoop on Diagnosing Memory Leaks in IIS(英文)
Understanding and Diagnosing Crashes in IIS(英文)







