7

しばらくの間、Windows アプリを運用しており、例外がスローされたときにエラー レポートを送信するように設定しています。これらのほとんどはかなり説明的であり、問​​題を非常に迅速に見つけるのに役立ちます (私は MS Application Exception Block を使用しています)。

場合によっては、再現できない問題であるというレポートがあり、少数のクライアント マシンでのみ発生するようです。

これらのクライアント マシンに物理的にアクセスできません。デバッグに使用できる戦略は何ですか? コードに何らかのトレースを組み込む方がよいでしょうか、それとも他の代替手段はありますか?

ありがとうございました。

編集:もっと明確にする必要がありました:私が取得したエラーレポートにはスタックトレースがありますが、それは製品コードであるため、例外の原因となった正確な行を示すものではなく、例外がスローされたメソッドのみを示しています.

4

5 に答える 5

2

あなたは正しい軌道に乗っています。アクション/例外をローカルに記録する追跡モジュールを作成する必要があります。

次に、問題が発生した瞬間にこの情報を自動的に電子メールで送信するためにユーザーがクリックできるボタンまたはメニューオプションを用意するか、ファイルを入手していつでも転送できるようにするオプションをユーザーに与えることができます。他の方法。

診断コードを組み込んでシステムの整合性チェックを実行し、レポートを送信することもできます (おそらく、すべての単体テストを実行して、そのシステムで動作するかどうかを確認します)。

于 2008-09-09T20:27:17.133 に答える
2

1 つのオプションは、例外がスローされるポイントにできるだけ近い (ミニ) ダンプ ファイルを生成することです。この記事では、マネージ コードからこれを行う方法について説明します。

次に、ダンプ ファイルを Visual Studio または WinDbg にロードし、SOSを使用して調べることができます。

于 2008-09-09T20:28:27.617 に答える
1

私は常に Jeff のこのモジュールを未処理の例外に使用し、スタックトレースなどを含むメールを送信します。

于 2008-09-09T20:22:13.433 に答える
1

Gurock Softwareの Smart Inspect は、私にとって何度も役に立ちました。.NET アプリケーションに簡単に組み込むことができ、ログ ファイルを分析する際に非常に強力な制御を行うことができます。特定の場合を除いて特定の機能をオフにできるログ レベルがあるため、パフォーマンスが低下しません。

マシンに完全にアクセスできない場合に、ソフトウェアがログを保存するために接続できるサーバー ソフトウェアもあります。たとえば、www.yourdomain.com でサーバーを実行できます。ソフトウェアには、デバッグを有効にする構成オプションがあります。Smart Inspect は、ログ データをサーバー (およびオプションでローカル ファイル) に送信するように構成されているため、ソフトウェアが実行されている場所に関係なく、ライブ ログを取得できます。

Smart Inspect は構成が非常に簡単で、役立つ多くの機能を備えています。私はこれを使用して、影響の大きいマルチスレッド サーバー アプリケーションを、マシンをダウンさせることなくオンザフライでデバッグしました。さまざまなプロセス、スレッド、およびマシンを追跡するためのすべてのフックがあります。

于 2008-09-09T20:49:37.657 に答える
0

イベントログを利用します。ここを見てください:

http://support.microsoft.com/kb/307024

于 2008-09-09T20:26:44.140 に答える