【问题标题】:asp.net mvc: is this request routed or not?asp.net mvc:此请求是否路由?
【发布时间】:2009-08-20 20:45:16
【问题描述】:

为了估计发送到我的 mvc 应用程序的请求的执行时间,我一直在使用 log4net 为我的 MVC 应用程序记录 global.asax 的 EndRequest 事件中经过的时间。 但是,每个请求都会调用 EndRequest,包括资源(css、图像);我希望能够区分这两种请求。

有没有办法将路由请求与静态内容请求分开?我应该放弃这个挂钩点并在代码中的另一个点执行吗?

【问题讨论】:

    标签: asp.net-mvc routing


    【解决方案1】:

    我通常从ControllerBase 类中派生所有控制器,并在其中插入OnActionExecutingOnActionExecuted 方法覆盖中的必要日志记录。

    这为我提供了一个中心位置来记录我的所有控制器操作 + 更多通常会堆积在我所有控制器的所有操作方法中的内容。

    【讨论】:

    • 一开始我并不想这样做,但在项目的这一点上确实是一条摩擦较少的道路
    • 它必须是实现你想要的最简单和最实用的方法......当然有些人可能会觉得日志记录是侵入性的,因为现在它是每个控制器的一部分,但是你可以将代码添加到动作属性中,然后将属性放在基本控制器上
    【解决方案2】:

    【讨论】:

    • 如果我遵循 Phil Haack 的代码,他所做的是: - 注册路由 - 用返回特定 httphandler 的路由处理程序覆盖每个路由处理程序,然后在每个请求上返回硬编码的 html 页面我真的不明白我应该如何挂钩执行时间登录那里。我可以做的是: - 创建一个记录开始和结束请求的 httphandler - 用一个分发日志记录 httphandler 的路由处理程序替换每个相关路由中的路由处理程序,但它似乎不值得麻烦,因为我可以做下面 mookid 建议的事情。 . 我错过了什么吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多