通过MVC路由为WebForms页面进行性能记录

时间:2010-12-06 11:02:15

标签: asp.net-mvc logging routing webforms asp.net-mvc-routing

我们有一个遗留应用程序,它是-ASP.NET WebForms和part-ASP.NET MVC。

为了给所有URL提供MVC“样式”,我们已经注册了一组路由,将所需的URL映射回WebForms URL。

e.g。

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

在MVC控制器上,我们通过继承自ActionFilterAttribute并覆盖OnActionExecutingOnActionExecuted的自定义属性实现了操作方法的性能记录。

我们希望为WebForms页面实现类似的日志记录。是否可以挂钩路由部分并从那里登录?

1 个答案:

答案 0 :(得分:1)

使用System.Diagnostics.StopWatch可以在全球范围内解决您的问题。

以下是我提出的解决方案:

1.在应用程序中,BeginRequest实例化一个新的StopWatch实例 2.在秒表实例上调用start方法 3.将秒表放在HttpContext.Current.Items集合中 4.在应用程序结束请求中,从httpcontext项获取StopWatch实例,调用stop方法,并使用您选择的“Elapsed”属性来获取您要存储的必要时间数据

这将提供一个单独的位置,您可以在其中测量所有请求,mvc和webforms的处理时间。