sosex をロードした後、次のエラーが表示されます。何か案は?ハング ダンプは 32 ビット マシンのもので、私のマシンは 64 ビットです。何かをインストールする必要がありますか?
!clrstack
CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3623.dll, Win32 error 0n2
sosex をロードした後、次のエラーが表示されます。何か案は?ハング ダンプは 32 ビット マシンのもので、私のマシンは 64 ビットです。何かをインストールする必要がありますか?
!clrstack
CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3623.dll, Win32 error 0n2
問題は、マシン上の mscordacwks のバージョンが、クラッシュ ダンプのバージョンとは異なることです。これはビット数の問題ではありません。マシンが 64 ビットであっても、32 ビットの .NET がインストールされています。私は C:\Windows\Microsoft.NET\Framework\v2.0.50727 の下にあります。
あなたが持っているコピーには、それほど長い名前はありません。単に mscordacwks.dll という名前になります。デバッガーは、「アクティブな」コピーが異なることを確認すると、長い名前のコピーを検索し (dll 地獄を回避)、取得する必要があるバージョンも通知します。(元のマシンなどから) 正しい mscordacwks.dll を取得したら、それをフレームワーク ディレクトリにコピーし、エラー メッセージに示されている名前を付けます。フレームワーク ディレクトリを含むように、windbg のイメージ パスも設定します。
sos は、mscordacwks フレームワーク アセンブリを使用して、インメモリ データ構造を理解する必要があります。これはすべて、ブログ記事「データ アクセス DLL の読み込みに失敗しました、0x80004005」で説明されています – または – mscordacwks.dll とは何ですか? 暗いコーナーのブログからのメモ。
その dll のさまざまなバージョンを入手する方法についての質問がインターネット上に散らばっています。クラッシュ ダンプを作成したマシンから 1 つを取得できず、Microsoft シンボル サーバーからダウンロードされないと仮定すると、私が過去に行ったことは、microsoft.com で mscordacwks と必要なバージョンを検索することです (例: 2.0.50727.3623)。通常、ダウンロードできるセキュリティ パッチに含まれています。
インストールするのに適切なシステムがない場合は、7zip でインストール exe を開くことができました。セキュリティ パッチ インストール実行可能ファイルに含まれていたパッチ ファイル (MSP ファイル) に含まれていた cab ファイルに mscordacwks ファイルが見つかりました。それぞれ7zipで開くことができます。
CAB ファイルにヒットした場合、7zip (v4.65) では解凍できないファイルを解凍できるため、expand.exe を使用する方がよい場合があります。を含む 7zip で CAB を開く場合_manifest_.cix.xml
は、マニフェストを使用して内容を抽出、解凍、および名前変更するため、代わりに展開を使用します。7zip (... への単純な抽出を行う) は、文字どおり 1、2 などの数字で名前が付けられた一連のファイルを生のままにします。これらのファイルはまだ圧縮されている可能性があります。それらを (たとえば SciTE で) 開くと、PA30 のような署名で始まることがわかります (マニフェストのソースの "type" 属性と一致します)。