0

特定のシナリオで失敗するライブ Web アプリケーションがあり、ローカルでは正常に動作します。リモート デバッグの設定がなく、コード内のいくつかの変数の値を確認したいと考えています。これらの値を表示するためにコードをログに記録/電子メールで送信/デバッグする最速の方法は何ですか?

明確にするために、スローされるエラー/例外はありません。何かが異なり、アプリケーションが予期しない結果をもたらす原因となっています。

前もって感謝します!

4

4 に答える 4

2

最も簡単な方法は、 Global.asaxファイル内の Application_Error イベントにログを実装することです。Global.asax ファイルがない場合は、VS New File ウィザードを使用してファイルを作成するだけで、そのイベントが処理されます。

エラーのスコープでローカル変数に到達するのには役立ちませんが、そこからグローバル変数をログに記録し、少なくともエラーの内容に関するフィードバックを得ることができます。

編集: あなたのコメントに応えて、トレース データを分析可能なファイルに出力することをお勧めします。私はこれを自分で試したことはありませんが、推奨されているのを見ました。web.config に、次のようにTraceListenerと呼ばれるものを追加します。

<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="TestTracer"
type="System.Diagnostics.TextWriterTraceListener, System,
Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="<app root directory>\Asptesttrace.log" />
</listeners>
</trace>
</system.diagnostics>

あなたはそれをローカルでいじる必要があるでしょう、私は確信しています。たとえば、トレースがクライアントに表示されないようにします (これには、Trace クラスを使用してトレースをオンまたはオフにしたり、書き込み先のストリームを変更したりする必要がある場合があります)。

于 2009-08-12T14:13:51.990 に答える
1

いつでもローカルのみのデバッグをオンにしてから、サーバーにリモートでオンにしてアプリを使用できます。

問題を確認するための最速の方法かもしれません。

于 2009-08-12T15:13:22.720 に答える
1

迅速なログ記録のために、ASP.NET トレース ( http://www.4guysfromrolla.com/webtech/081501-1.shtml ) を試してみます。コードに Trace.Write() 呼び出しを追加する必要があります。これにより、ライブ ページ自体でログを確認できます (参照するだけで)。

よりリッチなロギングを行うには、log4net を使用できます (「log4net を使用して」とググるだけで、便利なリンクがたくさん表示されます)。これは簡単に構成でき、電子メールでログを送信できます (これは驚くほど便利です!)。

それが役立つことを願っています。

于 2009-08-12T15:44:10.690 に答える
1

JoshJordan のコメントに加えて、Post Sharpを使用して、メソッドに入るときと出ないときはいつでもトレースし、どのような値が入ってくるかを確認できる場合があります...

于 2009-08-12T14:20:15.350 に答える