そのため、プロジェクトでは、エラーが発生しやすいことで有名な GDAL ( http://www.gdal.org/ ) ライブラリをアンマネージド C++ で記述して使用する必要があります (実際には C# バインディングを使用しています)。問題は、ライブラリが vhost32.exe プロセスを爆破してクラッシュさせることがあります。それについて私にできることは何もありません。空の catch ブロックは役に立ちません。AppDomain.CurrentDomain.UnhandledException は発生しません。
スローされる例外は
RASTER.exe の 0x77B9AA3C (ntdll.dll) で未処理の例外: 0xC0000374: ヒープが破損しています (パラメーター: 0x77BAFE38)。
したがって、明らかにこの例外は回復不能であり、Windows はプロセスをシャットダウンします。ここまでは順調ですね。問題は、ここからどこへ行くかです。バグのあるライブラリの呼び出しが失敗したからといって、プロセス全体が強制終了されることは望ましくありません。私のオプションは何ですか?2 番目のプロセスを生成し、プロセス間通信に名前付きパイプを使用しますか? これは、「Windows が問題の解決策を確認しています...」というポップアップで他のプロセスがクラッシュすることを意味します。良くない。残念ながら、私が必要とする機能については、そのライブラリに代わるものはありません。
<gcConcurrent enabled="false" />
<legacyCorruptedStateExceptionsPolicy enabled="true" />
私のApp.configでは何も変わりません。[HandleProcessCorruptedStateExceptions]
爆撃するメソッドを属性で装飾することもできません。
何か私にできることはありますか?