我的某些应用程序出现问题。它是一个基于 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 http://support.microsoft.com/kb/828222/。
当发生死锁时,会创建一个小型转储。
然后我用这个小型转储来尝试了解发生了什么。我被困住了。
我运行 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 中打开小型转储时,出现同样的错误(“SOS 版本与您正在调试的 CLR 版本不匹配”)。
我读过这篇文章 -http://tech-thinker.com/Forums/tabid/62/forumid/12/postid/471/scope/posts/Default.aspx http://tech-thinker.com/Forums/tabid/62/forumid/12/postid/471/scope/posts/Default.aspx,并尝试安装。这没有帮助。
这对我有用:
下载以下 DLL:
- clr.dll
- mscordacwks.dll
- SOS.dll
从生成转储的计算机上的此文件夹:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
运行以下命令。 SOS.DLL 的路径应该不带引号、未转义的路径分隔符:
.load 下载的 SOS.DLL 的路径
我认为需要一个新的 WinDbg 会话才能正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)