4

商用の Windows 7 デスクトップ アプリケーションを開発しています (多少シュリンク ラップしますが、完全ではありません)。アプリケーションには、Windows サービスと WPF ユーザー インターフェイス コンポーネントの両方があります。お客様のサイトでアプリケーションに障害が発生した場合に、プロセスのクラッシュ ダンプをダンプの場所に記録するなど、ランタイム環境に関する情報をキャプチャできるようにしたいと考えています。その情報は、さらなる調査の要求に応じて、サポート担当者に転送される可能性があります。また、エラーの結果としてポップアップする可能性のあるWindows エラー報告Microsoft に送信ダイアログをオフにしたいと考えています。

重要なことは、これがアプリケーション プロセスにのみ影響するようにすることです。顧客のデスクトップ上の他のすべてのアプリケーションが致命的なエラーを報告する方法を変更するグローバル設定に影響を与えたくありません。

シュリンク ラップ アプリケーションでこのようなことを行うための提案とベスト プラクティスを探しています。

4

1 に答える 1

3

これを行う方法を私が知る最良の方法は、AppDomain.CurrentDomain.UnhandledExceptionイベントに登録することです。そこで、Win32 API関数MiniDumpWriteDumpを使用して、独自のミニダンプファイルを作成できます。このブログ投稿をチェックして、良い例を確認してください。また、ClrDumpライブラリもあります。

UnhandledExceptionハンドラーを終了する前に、Environment.Exit()を呼び出すと、Windowsエラーダイアログが表示されなくなります。

私はまだ実際にこれらのミニダンプライブラリを使用していませんが、すぐに使用します。うまくいけば、この答えはあなたがグーグルに差し込むことができるいくつかのキーワードを少なくともあなたに与えるでしょう。

于 2011-07-19T17:52:25.720 に答える