121

.NET 4.0 に対して作成されたアプリケーションが週末にクラッシュし、次のメッセージがイベント ログに書き込まれました。

アプリケーション: PnrRetrieverService.exe フレームワーク バージョン: v4.0.30319
説明: IP 791F9AAA (79140000) での .NET ランタイムの内部エラーが原因で、終了コード 80131506 でプロセスが終了しました。

これは、Windows Server 2003 R2 Standard Edition ボックスにあります。このエラーをグーグルで検索しても、関連するものは何も見つかりませんでした。たとえば、これは VS Studio では発生していませんが、実稼働環境では発生しています。サービスが最終的に再起動されたとき、それ以上の問題は発生しませんでした.

.NET ランタイムのバグを診断するにはどうすればよいですか?

4

18 に答える 18

132

終了コード 80131506 付き

それは厄介なものです、ExecutionEngineException。.NET 4.0 以降では、この例外によってプログラムがすぐに終了します。一般的な原因は、ガベージ コレクション ヒープの状態の破損です。これは、常にアンマネージ コードによって引き起こされます。この例外が発生するコード内の正確な位置は役に立ちません。通常、損傷が検出されるかなり前に破損が発生します。

これの正確な原因を見つけるのは難しいでしょう。サービスで使用されている可能性のあるアンマネージド コードを確認します。明確な候補がない場合は、環境の問題を疑ってください。不正なマルウェア スキャナーは悪名高いです。繰り返しが非常に悪い場合は、ソフト RAM エラーなどのハードウェアの問題が疑われます。

于 2010-12-06T15:20:20.783 に答える
42

次の Microsoft KB エントリに記載されているように、x64 .Net 4でのガベージ コレクションの同時実装のバグが原因である可能性があります。

ガベージ コレクション中に ExecutionEngineException が発生する

ガベージ コレクション中に問題が発生したことを確認するために、最初に詳細なミニダンプ調査を行う必要があります。

通常、ミニダンプの場所は、クラッシュ エントリに続くイベント ログの Windows エラー報告エントリにあります。それでは、WinDbg をお楽しみください。

<gcConcurrent/>同時実行または (.NET 4 以降の場合) バックグラウンド ガベージ コレクションを無効にする構成要素の使用に関する最新のドキュメントは、ここにあります

于 2012-04-13T12:42:20.163 に答える
9

コードのバグが原因であることが判明した .NET ランタイムで「内部エラー」が発生しました。.NET ランタイムの「内部エラー」だったからといって、根本的な原因としてコードにバグがないとは思わないでください。他人のコードを責める前に、常に自分のコードを責めてください。

ロギングと例外/スタック トレース情報があれば、どこから調べ始めればよいか、またはクラッシュ前のシステムの状態を再現できることを願っています。

于 2010-12-06T15:06:21.003 に答える
7

グーグルからここに到着した人たちのために、私は最終的にこのSOの質問に出くわしました、そしてこの特定の答えは私の問題を解決しました。support.microsoft.comのライブチャットを通じて修正プログラムについてMicrosoftに連絡しましたが、修正プログラムへのリンクが電子メールで送信されました。

于 2013-01-09T16:04:12.667 に答える
6

私の.NET 4コードの最新ビルドを使用したWinXPボックスで、まったく同じエラーが発生しました。以前のビルドをチェックしました - 今はそれらもクラッシュします! わかりました、それは私ではありません:)。ここ/上記の提案は役に立ちませんでした。

同じ問題の最近 (2018-05-09) のレポート:終了コード 80131506 によるアプリケーションのクラッシュ

A : 同様のエラーが発生していましたが、これは Citrix メモリ オプティマイザが原因であると考えられます。
解決策は、問題が発生していたホストで .Net コア ライブラリを強制的に再生成することでした。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update /force

根本的な原因はまだ不明ですが (マシンは更新されておらず、ほとんど使用されていません)、それで解決しました!

于 2018-11-20T20:54:21.990 に答える
4

同時 GC のバグである可能性があります http://support.microsoft.com/kb/2679415

于 2012-11-28T14:49:02.817 に答える
2

私の場合、この例外は、ディスク領域がなくなり、.NET が Windows 仮想メモリにメモリを割り当てることができないときに発生しました。

イベント ログに次のエラーが表示されました。

アプリケーション ポップアップ: Windows - 仮想メモリの最小値が低すぎる : システムの仮想メモリが不足しています。Windows が仮想メモリ ページング ファイルのサイズを増やしています。このプロセス中に、一部のアプリケーションのメモリ要求が拒否される場合があります。

そして前のエラー:

C: ディスクが容量に達しているか、それに近い状態です。一部のファイルを削除する必要がある場合があります。

于 2012-08-07T11:02:45.957 に答える
1

私の場合、問題はNtQuerySystemInformationへの呼び出しがあった C++/CLI ライブラリでした。なんらかの理由で (そして不可解な状況で)、CLR ヒープが呼び出されたときに、アプリケーションがクラッシュしました。

HeapCreateで作成された「カスタム ヒープ」を使用して問題を解決し、その関数で使用されるバッファーをそこに割り当てました。

于 2015-03-11T08:42:12.953 に答える
1

すべての人に役立つかどうかはわかりませんが、実行することでこれを回避できます

devenv.exe /ResetSettings 

...パスで{Visual_Studio_root}\Common7\Ide

イベント ログに次のエラーがあり、VS は常にクラッシュして再起動していました。

Faulting application name: devenv.exe, version: 14.0.25123.0, time stamp: 0x56f22f32
Faulting module name: clr.dll, version: 4.7.2115.0, time stamp: 0x59af88f2
Exception code: 0xc0000005
Fault offset: 0x0015f90e
Faulting process id: 0x3a7c
Faulting application start time: 0x01d353463eaf0c36
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: a232f984-6e80-4f61-9003-e18a035c8f93
Faulting package full name: 
Faulting package-relative application ID: 
于 2017-11-01T19:30:16.147 に答える
0

フレームワークのバージョン: v4.0.30319 説明: 未処理の例外が発生したため、プロセスが終了しました。例外情報: System.Reflection.TargetInvocationException

このエラーに直面しました。アプリケーションは一部の PC で正常に動作し、一部の PC では上記のエラーが発生しました。Framework 4.5 をアンインストールして再インストールすると、問題が解決しました。

応援してください。

于 2016-03-22T07:58:51.900 に答える
0

私の場合、SAP Business One 9.1 アプリケーションにログインするときにこのエラーが発生しました。Windowsイベントでは、OPによって報告されたものに加えて、別のエラーイベントも見つけることができました:

Nome dell'applicazione che ha generato l'errore: SAP Business One.exe, versione: 9.10.160.0, timestamp: 0x551ad316
Nome del modulo che ha generato l'errore: clr.dll, versione: 4.0.30319.34014, timestamp: 0x52e0b784
Codice eccezione: 0xc0000005
Offset errore 0x00029f55
ID processo che ha generato l'errore: 0x1d7c
Ora di avvio dell'applicazione che ha generato l'errore: 0x01d0e6f4fa626e78
Percorso dell'applicazione che ha generato l'errore: C:\Program Files (x86)\SAP\SAP Business One\SAP Business One.exe
Percorso del modulo che ha generato l'errore: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
ID segnalazione: 3fd8e0e7-52e8-11e5-827f-74d435a9d02c
Nome completo pacchetto che ha generato l'errore: 
ID applicazione relativo al pacchetto che ha generato l'errore: 

マシンは Windows 8.1 を実行し、.NET Framework 4.0 がインストールされ、4.5 バージョンはインストールされていません。.NET 4 のバグでもある可能性があるとインターネットから思われたので、.NET Framework 4.5.2をインストールしてみましたが、問題は解決しました。

于 2015-09-04T13:00:31.813 に答える
0

これは、ファイナライザーで発生する例外である可能性があります。~Class(){ Dispose(false); のパターンを実行している場合。管理されていないリソースとして何を破棄しているかを確認してください。そこに try..catch を入れるだけで問題ありません。

ログなしでこの不可解なエラーが発生したため、問題を発見しました。「void Dispose(bool disposing)」を使用する通常の推奨パターンを実行しました。

ファイナライザーに関するこの質問の回答を見ると、アンマネージ リソースの破棄が例外をスローする可能性のある場所が見つかりました。

オブジェクトを適切に破棄しなかったことが判明したため、ファイナライザーがアンマネージ リソースの破棄を引き継いだため、例外が発生しました。

このケースでは、Kafka Rest API を使用して、Kafka からクライアントをクリーンアップしていました。ある時点で例外をスローしたようで、この問題が発生しました。

于 2017-04-17T18:06:42.343 に答える