2017-04-10 433 views
0

我們爲使用HttpModule的MVC應用程序提供了日誌記錄框架。在其他功能中,我們使用它來計算請求的響應時間。使用Response.Redirect進行Web日誌記錄

我們通過附加PostAcquireRequestState來開始計時來初始化它。我們附加到PostRequestHandlerExecute停止時間並登錄到數據庫。請參閱下面的初始化邏輯。

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

    } 

對於ASP.Net MVC,這很有用。

我們正在嘗試將其應用於我們的傳統WebForms應用程序。除非調用Response.Redirect()函數,否則這兩個事件都可以正常工作。在搜索關於頁面生命週期的多個網頁時,我無法找到有關在執行Response.Redirect後引發什麼事件的信息。

+0

我不確定有什麼事情,除非你做'Response.Redirect(「url」,false)'因爲它會拋出一個'ThreadAbortException'。 – mason

+0

這是我試圖避免的一個步驟。這樣做需要對3個非常大的Web應用程序進行源代碼更新。 –

回答

0

經過進一步的實驗,我發現我可以使用EndRequest事件。

 context.PostAcquireRequestState += OnBeginRequest; 
     context.EndRequest += LogRequest; 
相關問題