2010-12-06 32 views
0

我們有一個遺留應用程序,它是part-ASP.NET WebForms和part-ASP.NET MVC。通過MVC路由對WebForms頁面進行性能日誌記錄

爲了給所有的URL提供一個MVC風格,我們已經註冊了一組路徑來將所需的URL映射回WebForms URL。

例如

routes.Map("somemapping", "NiceUrl/{page}").To("~/UglyUrl/UglyPath/{page}.aspx"); 

在MVC控制器,我們通過從ActionFilterAttribute繼承並重寫OnActionExecutingOnActionExecuted自定義屬性的方式來實現的動作方法的性能記錄。

我們希望爲WebForms頁面實現類似的日誌記錄。是否可以掛接到路由部分並從那裏登錄?

回答

1

使用System.Diagnostics.StopWatch可以在全局級別解決您的問題。

這裏是我提出的解決方案:

1.在應用程序BeginRequest中實例化一個StopWatch的新實例。
2.在秒錶實例上調用start方法。
3.將秒錶放置在HttpContext.Current.Items集合中
4.在應用程序結束請求中,從httpcontext項目中獲取StopWatch實例,調用stop方法並使用您選擇的「Elapsed」屬性以獲得您想要存儲的必要時間數據

這將提供一個地方,您可以在其中測量所有請求,mvc和webforms的處理時間。