使用windbg调试iis应用程序池崩溃的asp.net 2.0 bug.
2011-11-28 09:44
525 查看
新上线的asp.net 2.0 项目,不定时的报告以下错误:
Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51ee2, debug? 0, fault address 0x0000bef7
并使iis应用程序池崩溃,在windows的事件日志中,有上述错误报告。
一、从微软官网下载WinDbg,我下载的版本是:dbg_x86_6.11.1.404.msi,请注意其中的x86或x64的描述。
二、配置windbg
打开软件,选择File->Symbol File Path,设置路径地址为:srv*c:\symbols*http://msdl.microsoft.com/download/symbols
三、关闭windbg窗口,执行cmd,进入windbg的安装目录,使用adplus.vbs设置iis应用程序池的监控。
adplus -crash -p 4456 -fullonfirst -o g:\debug -quiet
参数说明:-crash,告诉adplus,是调试崩溃。
-p 4456,指定iis应用程序池的windows进程号,如果不清楚所调试应用程序池的进程号,可以在cmd下使用iisapp查看。
-fullonfirst,第一次崩溃的时候,记录详细日志。
-o g:\debug,设置日志输出目录
-quiet,静默模式
关于adplus的更多参数,可以查阅csdn的相
4000
关资料。
四、根据以上图片的显示,adplus已经成功运行,可以看到,其实adplus调用最终执行的是另外一个程序cdb.exe,adplus只是一个vbs脚本。然后等待应用程序池崩溃吧,只需要在第一次崩溃结束后,使用windbg分析由adplus(cdb.exe)产生的日志即可。
五、分析日志
分析日志前,请把C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\加入到环境变量的path中。也可以把这个目录下的sos.dll复制到windbg的安装目录。
使用windbg打开g:\debug目录下的dmp文件,通常崩溃记录在所有日志文件中,较靠后的文件。
打开dmp文件后,执行
kb
.load sos
!clrstack
通常的asp.net异常,就能在其中找出问题所在了,我所碰到的此bug,是因为一个小递归程序导致的。
以上文章来自:32yx.com,文章地址:http://www.32yx.com/?p=341 联系QQ:301109640,转帖请注明出处。
Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51ee2, debug? 0, fault address 0x0000bef7
并使iis应用程序池崩溃,在windows的事件日志中,有上述错误报告。
一、从微软官网下载WinDbg,我下载的版本是:dbg_x86_6.11.1.404.msi,请注意其中的x86或x64的描述。
二、配置windbg
打开软件,选择File->Symbol File Path,设置路径地址为:srv*c:\symbols*http://msdl.microsoft.com/download/symbols
三、关闭windbg窗口,执行cmd,进入windbg的安装目录,使用adplus.vbs设置iis应用程序池的监控。
adplus -crash -p 4456 -fullonfirst -o g:\debug -quiet
参数说明:-crash,告诉adplus,是调试崩溃。
-p 4456,指定iis应用程序池的windows进程号,如果不清楚所调试应用程序池的进程号,可以在cmd下使用iisapp查看。
-fullonfirst,第一次崩溃的时候,记录详细日志。
-o g:\debug,设置日志输出目录
-quiet,静默模式
关于adplus的更多参数,可以查阅csdn的相
4000
关资料。
四、根据以上图片的显示,adplus已经成功运行,可以看到,其实adplus调用最终执行的是另外一个程序cdb.exe,adplus只是一个vbs脚本。然后等待应用程序池崩溃吧,只需要在第一次崩溃结束后,使用windbg分析由adplus(cdb.exe)产生的日志即可。
五、分析日志
分析日志前,请把C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\加入到环境变量的path中。也可以把这个目录下的sos.dll复制到windbg的安装目录。
使用windbg打开g:\debug目录下的dmp文件,通常崩溃记录在所有日志文件中,较靠后的文件。
打开dmp文件后,执行
kb
.load sos
!clrstack
通常的asp.net异常,就能在其中找出问题所在了,我所碰到的此bug,是因为一个小递归程序导致的。
以上文章来自:32yx.com,文章地址:http://www.32yx.com/?p=341 联系QQ:301109640,转帖请注明出处。
相关文章推荐
- 使用windbg調試iis應用程序池崩溃的asp.net 2.0 bug.
- ASP.NET 2.0中客户端脚本的使用方法
- 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解
- 在ASP.NET 2.0中操作数据之三十一:使用DataList来一行显示多条记录
- Scott Mitchell 的ASP.NET 2.0数据操作教程之八:使用两个DropDownList过滤的主/从报表
- 怎么在ASP.NET 2.0中使用Membership (转载)
- 使用ASP.NET 2.0中的GridView控件
- 使用asp.net 2.0和SQL SERVER 2005构建多层应用
- Scott Mitchell 的ASP.NET 2.0数据教程之四:: 使用ObjectDataSource展现数据
- 在ASP.NET Core 2.0中使用MemoryCache
- (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)
- 将 JavaScript 与 ASP.NET 2.0 结合使用的简便方法
- 使用asp.net 2.0的CreateUserwizard控件如何向自己的数据表中添加数据
- 将 JavaScript 与 ASP.NET 2.0 配合使用
- ASP.NET 2.0使用Web Part创建应用程序之一(共二)
- 在Apache上调试Asp.net 1.1/2.0代码
- ASP.NET Core 2.0使用Cookie认证实现SSO单点登录
- 使用ASP.NET 2.0 Profile存储用户信息[翻译] Level 200
- [翻译]使用asp.net 2.0中的SqlBulkCopy类批量复制数据
- ASP.NET 2.0中使用webpart系列控件