私はこれが何度も尋ねられたことを知っていますが、まあ、私はそれらをすべて読み、問題を解決することができませんでした。
基本的に、AzureでWebロールとして実行されているIIS 7.0x64w3wp.exeプロセスのメモリダンプがあります。複数のダンプがあり、windbgまたはSciTech .NetMemoryProfilerにそれらをロードできません。どちらの場合も、問題は正しいmscordacwks.dllを見つけることのようです。
マシンからx64とx86の両方のmscordacwks.dllを取得しましたが、いずれもロードできませんでした。
したがって、windbgで管理対象スレッドなどを表示したい場合、よくあるエラーが発生します。
0:000> !threads
The version of SOS does not match the version of CLR you are debugging. Please
load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.0.30319.551
SOS Version: 4.0.30319.17929
CLRDLL: Unable to get version info for 'D:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscordacwks.dll', Win32 error 0n87
DBGHELP: C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.551.dll\4F191DB4964000\mscordacwks_AMD64_AMD64_4.0.30319.551.dll - OK
CLRDLL: Loaded DLL C:\Program Files\Debugging Tools for Windows (x64)\sym\mscordacwks_AMD64_AMD64_4.0.30319.551.dll\4F191DB4964000\mscordacwks_AMD64_AMD64_4.0.30319.551.dll
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 clr.dll is
in the version directory or on the symbol path
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 supported cross platform architecture as
the dump file. For example, an ARM dump file must be debugged
on an X86 or an ARM machine; an AMD64 dump file must be
debugged on an AMD64 machine.
だから私はここに2つの奇妙なことがわかります:
- WindowsはAzureのD:\ドライブに展開されます(これにより問題が発生する可能性がありますか?)
- CLRバージョン:4.0.30319。551、ただしSOSバージョン:4.0.30319。17929
それで、 17929であるSOSバージョンである可能性がありますか?サーバー上のmscordacwks.dllは間違いなく551です。
問題を解決せずに想像できるすべてのコマンドラインを実行しました。
前もって感謝します