我的设置如下:
- 在 64 位 Windows 2003 服务器上运行的 32 位 .net 4.0 网站
- 我有 Debug Diagnostic 1.2 设置来监控崩溃
- 我还没有自动转储,但正在尝试分析手动转储。
- 我有一台安装了 Visual Studio 2010 的 32 位 Windows 7 机器,我试图用它来分析这些转储文件。
我尝试了多种方法来打开它生成的转储文件,但都失败了。
以下是我尝试过的:
1. DebugDiag Win 2003
尝试直接在托管网站的 win 2003 服务器上通过调试诊断使用分析选项卡。我收到以下错误
.NET runtime was loaded in the progress but managed analysis was not done on this dump file because the managed debugger extension commands failed to execue with the below error
CLRDLL: CLRDLL load disabled
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll by mscorwks search
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll on the path
CLRDLL: ERROR: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.dll , win32 error 0n2
2. 调试诊断 Win 7
尝试分析 32 位 windows 7 机器上的转储,我收到以下错误:
DebugDiag Analysis cannot be performed against a 64-but dump file from a 32-bit analysis machine
3. Win 7 x86 上的 WinDbg
尝试在 32 位 widows 7 机器上通过 WinDbg 工具打开转储:
0:000> !clrstack
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.
尝试在 WinDBG 上运行以下命令注册 mscordwks 并切换到 32 位版本,但仍然不行:
![在此处输入图像描述][2]
.loadby sos mscorkks
.load wow64exts
!sw
.cordll -ve -u -l
4. 视觉工作室 2010
尝试使用 Visual Studio 2010 调试此转储文件,但也无法显示无法显示托管代码或其他内容。
我已经在这上面呆了 10 天,感到非常失望和无助。
任何人都可以阐明这里有什么问题吗?
提前谢谢了。