在64位ASP.NET的孤立IIS应用程序池中创建的转储中没有托管线程

时间:2009-11-20 14:45:28

标签: asp.net iis 64-bit windbg deadlock

我需要找到事件ID 2262,检测到我们的ASP.NET应用程序的死锁(64位)的原因。它在我们的开发服务器上每天发生1-3次。

我通过孤立应用程序池创建了具有完整内存的小型转储,如下所述:http://support.microsoft.com/kb/828222

我用windbg打开转储并试图找到一些托管线程:〜* e!clrstack

我收到了所有主题:无法遍历托管堆栈。当前线程可能不是托管线程。您可以运行!threads来获取进程中托管线程的列表

当我从命令行执行转储时获得相同的结果(执行与孤立相同的命令设置)。

我应该以不同的方式接受或查看转储吗?

为了使windbg工作,我执行以下命令: .load c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ mscorwks.dll .load c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ mscordacwks.dll .load c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ sos.dll .symfix“c:\ Program Files \ Debugging Tools for Windows(x64)\ cache” .cordll -ve -u -l <​​/ p>

我在dbg tools文件夹中有以下dll:mscordacwks_AMD64_X64_2.0.50727.3603.dll(取自Framework64目录)。

我试图浏览所有日志,但没有找到任何带有死锁失败时间戳的相关数据。我回顾并强调了在第一次死锁之日和之前几天犯了svn的代码 - 在压力期间没有发生死锁。

我打赌clr stack,谢谢你的帮助, 扬

1 个答案:

答案 0 :(得分:0)

您是否加载了SOS,以便可以调试托管代码?对于.NET 4,语法为:

.loadby sos clr