WinDBG + SOS: Failed to load data access DLL, 0x80004005
Today I received a dump file from a client. I fired up WinDBG and met this dreaded error. If you stumble upon this post you have probably tried all the other Google solutions (such as updating to the latest WinDBG).
Here are what I tried, and failed:
> .cordll -ve -u -l CLR DLL status: No load attempts> .exepath+ C:\path\to\mscordacwks.dll (No use)
Here is how I solved it:
- First, I run the .cordll command that everybody recommends
> .cordll CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3625.dll, Win32 error 0n87
- The client was running Windows Server 2003 SP2. The
mscordacwks.dll
I have in my Windows 7 box was 2.0.50727.5448
> !sym noisy > !clrstackCLRDLL: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll:2.0.50727.5448 f:0 doesn't match desired version 2.0.50727.3625 f:0 SYMSRV: c:\symcache\mscordacwks_x86_x86_2.0.50727.3625.dll\4E154C985a9000\mscordacwks_x86_x86_2.0.50727.3625.dll not found SYMSRV: http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3625.dll/4E154C985a9000/mscordacwks_x86_x86_2.0.50727.3625.dll not found SYMSRV: C:\SymCache\mscordacwks_x86_x86_2.0.50727.3625.dll\4E154C985a9000\mscordacwks_x86_x86_2.0.50727.3625.dll not found SYMSRV: http://msdl.microsoft.com/download/symbols/mscordacwks_x86_x86_2.0.50727.3625.dll/4E154C985a9000/mscordacwks_x86_x86_2.0.50727.3625.dll not found CLRDLL: Unable to find mscordacwks_x86_x86_2.0.50727.3625.dll by mscorwks search CLRDLL: Unable to find 'mscordacwks_x86_x86_2.0.50727.3625.dll' on the path
So, it looks like this DLL is actually missing on MS’s server.
In a desperate atttempt, I tried to search the file in Google
To my surprise, I found the file in a security update
I downloaded the x86 file, opened the file in a zip and scavenged the required DLLs from there.
I had to rename the DLL files. In particular, I needed to duplicate
mscordacwks.dll
tomscordacwks_x86_x86_2.0.50727.3625.dll
to please WinDBGLoad SOS manually
.load C:\newly\downloaded\sos.dll
.sympath+ C:\newly\downloaded; .reload
(You may encounter an error if you have 2 SOS loaded at the same time.
.chain
,.unload
should take care of stuff)Volia! Now the game begins 🙂