无法加载数据访问DLL,0x80004005

时间:2009-12-17 10:14:48

标签: windbg sos

0:025> !pe
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
                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.

在64位服务器2003上运行corflags.exe / 32bit + xxxx.exe之后,xxxx.exe通常会崩溃。我在同一台机器上安装了这个转储器,安装了windbg(x86),但我不能使用SOS。我用Google搜索了这个问题,但找不到工作答案。我使用同一台机器,为什么windbg找不到它需要的东西?

1 个答案:

答案 0 :(得分:14)

问题是无法找到mscordacwks.dll的正确版本。 DLL充当运行时和SOS之间的抽象层,因此它必须对应于运行时的版本。这里有一个很好的问题及其解决方案http://blogs.msdn.com/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx

请务必遵循有关重命名DLL的​​建议,如果您弄错了它会导致错误,并且错误消息对您来说不是很有用。