【发布时间】:2011-11-17 20:22:10
【问题描述】:
我的某些应用有问题。这是一个基于 wcf 的应用程序,在 Windows 2003 Server (x86) 的 IIS6 下运行:
在事件日志中,我从“W3SVC-WP”源(EventID=2262)收到这样的错误:
ISAPI 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.
我正在尝试弄清楚发生了什么。我已经按照KB 中的描述设置了为孤立工作进程创建转储。
当发生死锁时,会创建一个小型转储。
然后我用这个小型转储来尝试了解发生了什么。这就是我卡住了。
我运行 WinDbg x86,打开我的转储,然后:
0:037> .loadby sos clr
0:037> .sympath SRV*c:\temp\symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: SRV*c:\temp\symbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\temp\symbols*http://msdl.microsoft.com/download/symbols
0:037> !clrstack
The version of SOS does not match the version of CLR you are debugging. Please load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.0.30319.1
SOS Version: 4.0.30319.235
CLRDLL: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll:4.0.30319.235 f:8 doesn't match desired version 4.0.30319.01 f:8
CLRDLL: Loaded DLL c:\temp\symbols\mscordacwks_x86_x86_4.0.30319.01.dll\4BA1D9EF66f000\mscordacwks_x86_x86_4.0.30319.01.dll
OS Thread Id: 0x690 (37)
Unable to walk the managed stack. The current thread is likely not a managed thread.
You can run !threads to get a list of managed threads in the process
如何处理此错误 - “SOS 版本与您正在调试的 CLR 版本不匹配”?
我在 VS2010 中打开 minidump 时遇到同样的错误(“SOS 的版本与您正在调试的 CLR 的版本不匹配”)。
我已阅读这篇文章 - http://tech-thinker.com/Forums/tabid/62/forumid/12/postid/471/scope/posts/Default.aspx,并尝试安装 KB2518870。没用。
【问题讨论】:
-
关于 SOS/MSCORDACWKS 兼容性的好文章 - jonathan.dickinsons.co.za/blog/2010/08/windbg-stack-fix
标签: .net debugging windbg sos minidump