Have you ever experienced the following SOS/DAC mismatch error in WinDbg?
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of mscorwks.dll is
in the version directory
3) or, if you are debugging a dump file, verify that the file
mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
4) you are debugging on the same architecture as the dump file.
For example, an IA64 dump file must be debugged on an IA64
There are a lot of blog posts and articles that explain the cause for this error. The solution is simple: find the correct
mscordacwks.dll version. And this is the moment when your pain starts. Well, not any more. I wrote a simple static C# class that downloads the correct
mscordacwks.dll file for you. You can use it as easy as follows:
You can extend the class to download
sos.dll file as well or to support ARM or IA64 processors. Keep in mind that you have to compile the source code with
/unsafe option enabled. Also don’t forget to include the following two files (with the correct bitness) from WinDbg folder in your path: