私は現在、Application.ThreadException
イベントをリッスンしてGUIスレッドで未処理の例外をトラップするWinFormsアプリケーションを保守しています。
今では最近まで期待通りに動いています。しかし最近、このイベントは一部のプロダクションボックスで適切に発生しなくなりました。アプリはハンドラーをスキップし、GUIスレッドで未処理の例外が発生するとクラッシュします。不思議なことに、これを(新しい)開発ボックスで再現することはできますが、実際にイベントが正しく発生しているマシンがいくつかあります。
次のようにポリシーを明示的に設定することで、動作を一貫させることができます。
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
しかし、何がデフォルトのポリシーを制御しているのか知りたいです。MSDNは「アプリケーション構成ファイル」を漠然とほのめかしていますが、app.configや私が知っている他の構成ファイルにはそのようなポリシー設定はありません。
この一貫性のない動作の原因は何ですか?