質問: .netランタイムの内部エラーを解決する方法 数週間前、私の会社のラップトップで奇妙な問題が発生し始めました。 microsoft developer web serverを起動できなくなりました(visualstudio->デバッグ経由)。後で、.netアプリケーションを実行できないことがわかりました。私のdmpファイルを確認した後、microsoft clrスペシャリストと話す際に、彼は言いました プロセスにロードされると、.exeファイルのオフセット0×168の8バイトが0に設定されます。これがclrの失敗の原因となっている問題です。これらのビットは、あなたが私に提供したファイルで正しく設定されています。 c:\ windows\system32\detoured.dllがプロセスにロードされます。これは、これらのプロセスの動作を変更するために、迂回ライブラリがマシンで使用されていることを意味します。 また、セーフモードで起動すると、すべてが機能することもわかりました。また、.net実行可能ファイルを右クリックし、[名前を付けて実行]を選択して、現在ログインしているユーザーの資格情報を入力すると、アプリケーションが機能することがわかりました。アプリをダブルクリックしただけでは機能しません。多くのシステムイベントメッセージとワトソン博士のタイプエラーがあります。これが私が得るいくつかです:visualstudioを使用せずにmsdeveloper web serverを起動すると、メッセージボックスのポップアップに次のように表示されます。webdev.webserver40.exe has encountered a problem and needs to close. we are sorry for the inconvenience. vshostシステムイベントログエントリ:event 1: application: mywebsite.vshost.exe framework version: v4.0.30319 description: the process was terminated due to an internal error in the .net runtime at ip 791a8bbd (79140000) with exit code 80131506. event 2: faulting application mywebsite.vshost.exe, version 10.0.30319.1, stamp 4ba2084b, faulting module clr.dll, version 4.0.30319.1, stamp 4ba1d9ef, debug? 0, fault address 0x00068bbd. サードパーティアプリを実行するためのシステムイベントログエントリ:source: application popup description: application popup: #appname#.exe – application error : the application failed to initialize properly (0xc000007b). click on ok to terminate the application. .net v4 frameworkシステムイベントログを使用して構築したアプリケーションは、次のように述べています。source: .net runtime framework version: v4.0.30319 description: the process was terminated due to an internal error in the .net runtime at ip 791a8bbd (7914000) with exit code 80131506. .net v2 frameworkシステムイベントログを使用して構築したアプリケーションは、次のように述べています。source: .net runtime description: .net runtime version 2.0.50727.3053 – fatal execution engine error (7a097706) (80131506) ここに 私のブログの詳細 -これまでに試したすべてのものと、詳細と説明が含まれています。復元ポイントに関する限り、私の最も古い復元ポイントは数週間前であり、まだこの問題が発生しているため、そのポイントを復元してもあまり役に立たないと思います。問題の原因となっているプロセスを特定して、コンピューターを修正するにはどうすればよいですか?
回答: dependency walker を使ってみます。プログラムのプロファイルを作成し、出力を保存します。セーフモードで起動し、プロファイルを再度作成します。出力を比較すると、プログラムがいつ変更されるかについての詳細情報が得られる場合があります。 windows用のデバッガーツール からwindbgを使用することもできます。 (このリンクはドライバー開発者向けですが、.netプログラムにはwindbgを使用しました。)デバッグ出力を最大限にするには、 windowsシンボルパッケージ for xpも。