1

IIS 7/Win2K8 Standard で ASP .Net Web アプリケーションを実行しています。

私が助けてほしいこと:

ユーザーがクライアント側 (ブラウザー) で要求を行うと、サーバー上の要求オブジェクトが到着したらすぐに (ログの目的で) 調べたいと考えています。

特に、少なくともログに記録したい:

  1. リクエストの時間。
  2. リクエストの IP アドレス。
  3. 要求のサイズ (バイト単位)。

同様に、同じリクエストに対してレンダリングされるレスポンスのサイズをログに記録したいと考えています。

要求は、ページ全体の要求または部分的な更新 (updatepanel) 要求の場合があります。

提供されたヘルプに大いに感謝します。

ありがとうございます。

4

2 に答える 2

2

Global.asax ファイルで Application_BeginRequest イベントを処理します。このようなもの:

public void Application_BeginRequest(Object sender, EventArgs e) {
     yourLogger.Log(String.Format("Request Time: {0}, Request IP: {1}, Request Size: {2}",
                                  Date.Now.Time,
                                  Request.UserHostAddress,
                                  Request.TotalBytes)
}
于 2012-07-20T07:02:10.093 に答える
1

@just.another.programmerからの回答に加えて、別のアプローチをお勧めします

未処理の例外が発生した場合でも、各要求と応答が実際にログに記録されることを完全に確認したい場合は、次の使用を検討する必要があります: LogRequestイベントまたはPostLogRequest

MSDN から

ASP.NET が現在の要求のログを実行する直前に発生します。

エラーが発生した場合でも、LogRequest イベントが発生します。LogRequest イベントのイベント ハンドラーを提供して、要求のカスタム ログを提供できます。

このイベントを使用するには、アプリケーションが IIS 7.0 および .NET Framework 3.0 以降の統合モードで実行されている必要があります。

これらのイベントは、リクエスト ライフサイクルの最後に発生します。

参考文献:

于 2012-07-20T07:11:12.647 に答える