首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试w3wp clr.dll错误

如何调试w3wp clr.dll错误
EN

Stack Overflow用户
提问于 2013-08-20 12:56:58
回答 4查看 45.2K关注 0票数 46

我的客户端在两个生产服务器上安装了一个ASP.NET应用程序(与北草坪会议大楼保持平衡,但这与此无关)。这两台服务器每3-4小时崩溃一次,出现以下事件查看器记录错误:

错误应用程序名称: w3wp.exe,版本: 7.5.7601.17514,时间戳: 0x4ce7afa2 故障模块名称: clr.dll,版本: 4.0.30319.18034,时间戳: 0x50b5a783 异常代码: 0xc00000fd故障偏移量:0x00000000000001a840 故障过程id: 0xd 50 故障应用程序启动时间: 0x01ce97fe076d27b4 故障应用程序路径: c:\windows\system32\inetsrv\w3wp.exe 故障模块路径: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll报表Id: e0c90a5f-0455-11e3-8f0e-005056891553

我不知道如何调试,也不知道从哪里开始。当崩溃即将发生时,服务器处理器的使用率跃升到100%,并停留在那里。出错的过程是w3wp.exe。我甚至不确定我的代码是否产生了错误。是IIS 7.5。任何指示都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-20 13:01:14

看起来您有一个StackOverflow异常,它是由无界递归(一个函数反复调用自身等)引起的。这不能被常规的尝试/捕捉块捕获。您可以使用DebugDiagWinDbg跟踪问题。

DebugDiag可以配置为在StackOverflowException发生时生成崩溃转储。在https://www.microsoft.com/en-us/download/details.aspx?id=58210下载。

  1. 打开DebugDiag并单击Add Rule。
  2. 应该已经选择了“崩溃”。单击Next。
  3. 选择“一个特定的IIS web应用程序池”并单击“下一步”。
  4. 选择应用程序池,然后单击Next。
  5. 您应该在高级配置窗口上。单击“高级设置”下的“例外”。
  6. 单击“添加异常”并选择堆栈溢出,其操作类型为“完全用户转储”
  7. 单击“确定”并保存并关闭。

下次发生StackOverflowException时,您将有一个崩溃转储。现在需要解释转储文件。

Windows的调试工具是Windows的一部分,可以在http://msdn.microsoft.com/en-US/windows/hardware/gg463009/下载。

  1. 要使用WinDbg,您需要获取符号文件。下载符号文件并将它们放在本地文件夹中。
  2. 打开WinDbg。在“文件”菜单上,单击“符号文件路径”。
  3. 在“符号路径”框中,文档要求输入以下命令:SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols,但是我只是在本地文件夹中输入了符号,它工作得很好。
  4. 退出并再次打开WinDbg,打开崩溃转储并找到由DebugDiag创建的转储文件。
  5. 在命令行中,键入.loadby sos clr
  6. 现在输入!CLRStack

在结果中,应该清楚问题是什么(您可能会看到一堆显示反复调用的函数的行)。

票数 83
EN

Stack Overflow用户

发布于 2014-01-13 14:59:06

对上述答案的补充。开发浏览器扩展程序,在用户登录时出现错误。因此,对于用户来说,它看起来是“闪烁的屏幕”(而资源管理器试图启动和崩溃,然后重新启动等等)。在安装了DebugDiag和WinDbg的另一个用户帐户下登录。今天(2014年1月13日),我使用Windows8.1和.Net 4.0进行所有最新更新,尝试在本地下载少量符号,但由于信号不正确,WinDbg无法加载clr.pdb。

使用符号在线解决它-使用"SRV*http://msdl.microsoft.com/download/symbols“作为符号路径。

票数 2
EN

Stack Overflow用户

发布于 2014-02-20 10:36:11

另一个原因可能是“无限递归功能”。当发生信息循环Windows时,尝试避免死锁并禁用已发布的应用程序池。

我今天也遇到了同样的问题。我有一个递归函数,它列出了父项目-子项目。一个项目被设置为父项目,当回收函数尝试列出所有父-子项目时,会出现无限循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18335678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档