2017-04-10 15 views
0

HttpModuleを使用するMVCアプリケーション用のロギングフレームワークがあります。他の関数の中でも、リクエストの応答時間を計るのにこれを使用します。Response.RedirectによるWebロギング

タイミングを開始するためにPostAcquireRequestStateを添付して初期化します。 PostRequestHandlerExecuteのタイミングを停止し、データベースにログを記録します。初期化ロジックについては、以下を参照してください。

public void Init(HttpApplication context) 
    { 
     context.PostAcquireRequestState += OnBeginRequest; 
     context.PostRequestHandlerExecute += LogRequest; 

    } 

ASP.Net MVCでは、これは素晴らしい動作です。

私たちは従来のWebFormsアプリケーションにこれを適用しようとしています。これらの2つのイベントは、Response.Redirect()関数が呼び出された場合を除いて正しく機能します。ページのライフサイクルについて複数のWebページを検索すると、Response.Redirectが実行された後にスローされるイベントに関する情報を見つけることができません。

+0

あなたが 'ThreadAbortException'を投げるので、あなたが' Response.Redirect( "url"、false) 'を実行しない限り、何の出来事もありません。 – mason

+0

それは私が避けようとしている一歩です。これを行うには、非常に大規模な3つのWebアプリケーションにソースコードの更新を要求する必要があります。 –

答えて

0

さらに実験したところ、私はEndRequestイベントを使用できることがわかりました。

関連する問題