web-dev-qa-db-ja.com

.NETランタイムの内部エラーを解決する方法

数週間前、私の会社のラップトップで奇妙な問題が発生し始めました。 Microsoft Developer Web Serverを起動できなくなりました(VisualStudio->デバッグ経由)。後で、.NETアプリケーションを実行できないことがわかりました。

私のdmpファイルを確認した後、Microsoft CLRスペシャリストと話す際に、彼は言いました

  1. プロセスにロードされると、.exeファイルのオフセット0×168の8バイトが0に設定されます。これがCLRの失敗の原因となっている問題です。これらのビットは、あなたが私に提供したファイルで正しく設定されています。

  2. 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)

ここに 私のブログの詳細 -これまでに試したすべてのものと、詳細と説明が含まれています。

復元ポイントに関する限り、私の最も古い復元ポイントは数週間前であり、まだこの問題が発生しているため、そのポイントを復元してもあまり役に立たないと思います。

問題の原因となっているプロセスを特定して、コンピューターを修正するにはどうすればよいですか?

6
Jim W

セーフモードでは問題が発生しないとおっしゃっていますので、インストールされているアプリケーション、アドオン、またはドライバーが原因であることは明らかです。

このプロジェクトにすでに投資した努力を考慮して、ハードディスクを再フォーマットしてXPを再インストールしてから、すべての製品を1つずつ再インストールし、再起動して問題が再発するかどうかを確認することをお勧めします。または、Revo Uninstallerを使用して製品をアンインストールすることもできますが、Revoでさえ特に卑劣なインストールを見逃す可能性があります。

率直に言って、起動時に変更される実行可能ファイルにはウイルス感染の匂いがするため、この場合は例外的に再フォーマットすることをお勧めします。

3
harrymc

Dependency Walker を使ってみます。プログラムのプロファイルを作成し、出力を保存します。セーフモードで起動し、プロファイルを再度作成します。出力を比較すると、プログラムがいつ変更されるかについての詳細情報が得られる場合があります。

Windows用のデバッガーツール からWinDbgを使用することもできます。 (このリンクはドライバー開発者向けですが、.NETプログラムにはWinDbgを使用しました。)デバッグ出力を最大限にするには、 Windowsシンボルパッケージ for XPも。

0
Velociraptors

あなたの答えは最初の段落にあったかもしれません-迂回路を削除してください。 [プログラムの追加と削除]に移動し、[迂回]を見つけて削除します。

迂回路: http://research.Microsoft.com/en-us/projects/detours/

0
Mark Allen