我的一些應用程序出現問題。這是一個基於WCF的應用程序在Windows Server 2003的IIS6下運行(86):
在事件日誌,我從收到了這樣的錯誤 「W3SVC-WP」 源(事件ID = 2262):如何處理WinDbg中的「SOS版本與您正在調試的CLR版本不匹配」?
ISAPI 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.
我試着弄清楚發生了什麼事。我已經建立了如KB中所描述的爲孤兒工作進程創建轉儲。 當發生死鎖時,創建一個小型轉儲。
然後我用這個小轉儲來試着瞭解發生了什麼。這是我卡住了。
我跑的WinDbg 86,打開我的轉儲,然後:
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版本」?
同樣的錯誤(「SOS的版本不匹配您正在調試的CLR版本」)我得到當我在VS2010中打開小型轉儲。
我讀過這篇文章 - http://tech-thinker.com/Forums/tabid/62/forumid/12/postid/471/scope/posts/Default.aspx,並嘗試安裝KB2518870。它沒有幫助。
關於SOS/MSCORDACWKS兼容性的好文章 - http://jonathan.dickinsons.co.za/blog/2010/08/windbg-stack-fix/ – Shrike
這對我有幫助:http://blogs.msdn.com/ b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx – Wally