IIS崩溃时自动抓取Dump

Posted 虎头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS崩溃时自动抓取Dump相关的知识,希望对你有一定的参考价值。

背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析.

IIS崩溃时自动抓取Dump,需要满足下面几个条件

1、启动 Windows Error Reporting Service 服务

 

2、移除默认的调试器

 

如果你的机器装了VS开发工具,会在注册表里写入调试器地址,需要把它删除。

找到注册表删除以下2个项目
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\Debugger

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework\\DbgManagedDebugger

在 64 位 操作系统上也删除以下注册表项:

HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\Debugger

HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\.NETFramework\\DbgManagedDebugger

 

3、执行下面注册表脚本,设置w3wp.exe 崩溃时自动抓取dmp文件,保存在D:\\dumps文件夹里

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\\w3wp.exe]
"DumpFolder"=hex(2):64,00,3a,00,5c,00,64,00,75,00,6d,00,70,00,73,00,00,00
"DumpCount"=dword:00000002
"DumpType"=dword:00000002

 

备注,如果没有D盘,可以保存到C盘,修改一下DumpFolder。"DumpFolder"=hex(2):63,00,3a,00,5c,00,64,00,75,00,6d,00,70,00,73,00,00,00

解压iiscrash.rar,执行iiscrash.reg

4、查看dmp文件

IIS崩溃后,在D:\\dumps文件夹能看到dmp文件,可以用于分析dmp文件,找出IIS崩溃的原因。

5、精华

上面操作比较麻烦,最后有大神搞一个批处理文件

rem 可根据实际情况修改磁盘路径DMPPATH=d:\\dumps
SET DMPPATH=d:\\dumps
SC CONFIG WerSvc START= AUTO
NET START WerSvc
ECHO 启用完成

REG DELETE HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\Debugger /f
REG DELETE HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework\\DbgManagedDebugger /f

REG DELETE HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug\\Debugger /f
REG DELETE HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\.NETFramework\\DbgManagedDebugger /f

ECHO 删除完成

REG ADD "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\\w3wp.exe"  /f
REG ADD "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\\w3wp.exe"  /t REG_SZ  /v DumpFolder /d   %DMPPATH% /f
REG ADD "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\\w3wp.exe"  /t REG_DWORD   /v DumpCount /d  2 /f
REG ADD "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\\w3wp.exe"  /t REG_DWORD   /v DumpType /d  2 /f

ECHO 启用完成

PAUSE 

  

以上是关于IIS崩溃时自动抓取Dump的主要内容,如果未能解决你的问题,请参考以下文章

使用windbg分析iis崩溃的一个实例

在进程崩溃的时候自动抓取一个DUMP文件

抓取win32程序崩溃dump文件的几种方法

抓取win32程序崩溃dump文件的几种方法

如何在.NET程序崩溃时自动创建Dump?

iis频繁奔溃,求大神帮忙分析dump