通过 MVC 路由记录 WebForms 页面的性能

发布于 2024-10-06 09:30:16 字数 573 浏览 1 评论 0原文

我们有一个遗留应用程序,一部分是 ASP.NET WebForms,一部分是 ASP.NET MVC。

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

例如,

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

在 MVC 控制器上,我们通过继承自 ActionFilterAttribute 并覆盖 OnActionExecutingOnActionExecuted

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

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 OnActionExecuted.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟雨凡馨 2024-10-13 09:30:16

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

这是我建议的解决方案:

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

这将提供一个位置您可以在其中测量所有请求、MVC 和 Web 表单的处理时间。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文