2009-11-20 51 views
0

我需要找到我们的ASP.NET应用程序(64位)检测到的死锁事件ID 2262的原因。它在我们的开发服务器上每天发生1-3次。由孤立64位IIS IIS应用程序池创建的转储中没有托管线程

我通过成为孤儿的应用程序池创建的迷你转储,完全内存作为这里描述:http://support.microsoft.com/kb/828222

我打开转储使用WinDbg,并试图找到一些管理线程:〜!* E clrstack

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

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

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

对于化妆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

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

我试图探索我们所有的日志,并没有发现任何与死锁失败时间戳有关的数据。我审查并强调了在第一次僵局之前和前几天对svn犯下的代码 - 在压力期间没有发生死锁。

我赌CLR堆栈,感谢您的帮助, 扬

回答

0

你加载SOS,让托管代码进行调试?对于.NET 4,其语法为:

.loadby sos clr