# Code for Concinnity

## 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
> !clrstack

CLRDLL: 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
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 to mscordacwks_x86_x86_2.0.50727.3625.dll to please WinDBG

• Load 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 🙂