开发者

Performance logging for WebForms pages via MVC routing

We have a legacy application that is part-ASP.NET WebForms and part-ASP.NET MVC.

In order to give all URLs an MVC "style" we've registered a set of routes to map the desired URLs back to the WebForms URLs.

e.g.

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

On the MVC Controllers we have implemented performance logging of action methods by way of a custom attribute that inherits from ActionFilterAttribute and overrides OnActionExecuting and OnActionExecu开发者_运维问答ted.

We would like to implement similar logging for the WebForms pages. Is it possible to hook into the routing part and log from there?


Using a System.Diagnostics.StopWatch could solve your problem at a global level.

Here is my proposed solution:

1. In the application BeginRequest instantiate a new instance of StopWatch.
2. Call the start method on the stop watch instance.
3. Place the stop watch in the HttpContext.Current.Items collection
4. In the application End Request, get the StopWatch instance from the httpcontext items, call the stop method, and used the "Elapsed" property of your choice to get the necessary time data that you would like to store

this will provide one single place where you can measure the processing time of all requests, mvc and webforms.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜