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

C.C*_*.C. 14 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.
Run Code Online (Sandbox Code Playgroud)

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

Bri*_*sen 14

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

确保遵循关于重命名DLL的​​建议非常小心,因为如果你弄错了它不起作用并且错误消息不是非常有用的imo.

  • 非常感谢你的帮助.最后,我使用此命令帮助:0:025>!load wow64exts 0:025>!sw切换到32位模式后,我可以使用SOS.再次非常感谢:) (15认同)