ASP.NET MVC Webサイトをロードしようとすると、次の例外が発生します。
W3wp.exeの0x07070a91での未処理の例外:0xC0000005:0x00000000の場所を読み取るアクセス違反。
Visual Studioジャストインタイムデバッガーが開き、デバッガーで表示できる情報は次のとおりです。
コールスタックの場所:
msvbvm60.dll!06c00a91()
WebサイトはいくつかのCOMオブジェクトを使用しており、すべてが先週まで正常に動作しました。この問題は突然発生しました。
これは、Windowsイベントビューアのエラーログです。
障害が発生しているアプリケーション名:w3wp.exe、バージョン:7.5.7601.17514、タイムスタンプ:0x4ce7a5f8
エラーが発生したモジュール名:MSVBVM60.DLL、バージョン:6.0.98.15、タイムスタンプ:0x4a5bda6c
例外コード:0xc0000005
障害オフセット:0x00030a91
エラーが発生したプロセスID:0x1a0
障害が発生したアプリケーションの開始時間:0x01cd31fcb47f66d8
エラーが発生したアプリケーションパス:C:\ Windows\SysWOW64\inetsrv\w3wp.exe
エラーが発生したモジュールのパス:C:\ Windows\system32\MSVBVM60.DLL
レポートID:f5db0ae3-9def-11e1-ad79-005056c00008
この問題のトラブルシューティングに役立つ提案はありますか?
編集:問題を解決し、すべてが機能するようになりました。ソリューションには、カスタムdllが適切に機能するために必要ないくつかのレジストリ設定の微調整が含まれていました。そのため、問題が実際に突然発生することはなく、いくつかのレジストリ値が変更されたことに気づかなかったため、COM DLLがクラッシュしました。
上記で提供した情報は根本的な原因を提供するのに十分ではありませんが、例外に関する詳細情報を提供できる場合は、この失敗の正確な理由がわかる可能性があります。この問題をトラブルシューティングするための提案を求めたので、次のとおりです。
この問題のトラブルシューティングには、3つのツールのいずれかを使用できます。
IISデバッグ診断ツールv1.2
このツールの使用方法に関する詳細は次のとおりです。 http://support.Microsoft.com/kb/91979
DebugDiag
以下のリンクを使用して、DebugDiagでw3wpプロセス(ユーザーモードプロセス)をフックして、クラッシュに関する詳細情報を収集する方法を理解してください。
WinDBG
以下は、WinDBGにW3WPプロセスをロードし、いくつかのコマンドを使用してクラッシュに関する詳細情報を抽出するのに役立つリンクです。
例外に関する詳細情報が得られたら、上に追加でき、プロンプトヘルプが表示されます。
IIS Managerでアプリケーションを提供しているアプリケーションプールの[詳細設定]ダイアログを開き、次のように設定します:2ビットアプリケーションを有効にする to 真
以下をせよ、
1)Tempおよび%temp%フォルダーに完全な権限を付与する
2)アプリケーションプールのプロパティに移動し、「32ビットアプリケーションを有効にする」をtrueに変更します。
この問題が再び発生したときに、クラッシュダンプをキャプチャすることから始めます。
http://support.Microsoft.com/kb/258096
Debug Diag 1.2を使用してクラッシュルールを適切に設定するには、ステップ1を実行します。
ダンプを取得したら、WinDbg(Debugging Tools for Windowsの一部)を使用して、ダンプの分析に慣れている場合にダンプを分析できます。
それを分析できない場合は、 http://support.Microsoft.com でサポートケースを開き、Microsoftサポートエンジニアとダンプを共有することをお勧めします。
私の場合、「Web Companion」というプログラムがインストールされていました。
アンインストール後、問題は修正されました。
私の解決策は、64ビットでビルドする場合です:
Debug ==> Options ==> Search for iis ==> enable using using 64bit Version of IIS Express