加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

iis – 如何调试w3wp.exe随机崩溃的原因?

发布时间:2020-12-15 22:37:07 所属栏目:asp.Net 来源:网络整理
导读:在主生产服务器上,IIS工作进程有时会崩溃.从事件查看器中我获得以下信息. Faulting application name: w3wp.exe,version: 7.5.7601.17514,time stamp: 0x4ce7a5f8 Faulting module name: KERNELBASE.dll,version: 6.1.7601.17651,time stamp: 0x4e211319 Exc
在主生产服务器上,IIS工作进程有时会崩溃.从事件查看器中我获得以下信息.

Faulting application name: w3wp.exe,version: 7.5.7601.17514,time
stamp: 0x4ce7a5f8 Faulting module name: KERNELBASE.dll,version:
6.1.7601.17651,time stamp: 0x4e211319 Exception code: 0xe053534f Fault offset: 0x0000b9bc Faulting process id: 0x%9 Faulting
application start time: 0x%10 Faulting application path: %11 Faulting
module path: %12 Report Id: %13

这在prod服务器上随机发生,我无法在其他任何地方重新创建此崩溃.这种情况发生在IIS 6上,我们最近转移到了Windows Server 2008和IIS 7.5,并且崩溃也发生在那里.

如何找到这个的根本原因?

解决方法

Tess Ferrandez的博客包含了一个分步指南:

https://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx

基本上,您将设置DebugDiag 1.2 x64以触发该异常代码,并创建一个完整的userdump.创建转储后,您可以使用DebugDiag为您分析转储.虽然有这个特殊的例外,你可能需要使用WinDbg SOS.

一些更相关的信息:

“对于大多数人可能知道的堆栈溢出,最常见的原因是我们处于某种类型的递归循环中,所以我们真正想知道的是这个堆栈上的内容……它出现的原因是什么只是地址而不是方法名称,因为debug diag不理解.net所以我们必须将转储带到windbg进行分析并检查.net堆栈.

“在windbg中我们可以加载sos(.loadby sos mscorwks)并在活动堆栈上运行!clrstack来获取callstack.”

(如果您运行的是.NET 4,则加载sos的命令为:.loadby sos clr)

最终,您正在寻找的是导致递归的应用程序中的违规代码.加载SOS时出现在WinDbg中的方法名称可能会让您指向正确的方向.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读