2
votes
  1. I downloaded symbols for windows2003 server from here http://msdn.microsoft.com/en-us/windows/hardware/gg463028

  2. I did what is described here - http://blogs.msdn.com/b/johan/archive/2007/11/13/getting-started-with-windbg-part-i.aspx. But when I try to run !threadpool it says

0:024> !threadpool
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___.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
                machine.

You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable
path is pointing to mscorwks.dll as well.

1

1 Answers

1
votes

This occurs because you have a different minor version of .net on your computer than the server has. I don't mean .net 3.5 vs 4.0, I mean version a.b.c.d.dll vs e.f.g.h.dll.

You need to get a copy of c:\windows\microsoft.net\framework\v2.0.50727\mscordacwks.dll from the windows2003 server.

Then, follow the steps in this post: http://blogs.msdn.com/b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx.

Try this first:

!sym noisy 
.symfix c:\mylocalsymcache 
.cordll -ve -u -l

If that doesn't work, then you'll rename the mscordacwks.dll file, copy it to the symbol location specified on your machine, and try again.

Please do not overwrite the file on your computer with the one from the windows 2003 server. :)