c# - ASP.NET MVC - 请求周期中最早可以检测到静态资源请求的点是什么?

标签 c# asp.net-mvc asp.net-mvc-3 profiling static-resource

为了给这个问题提供一些背景信息,我编写了一个在 Application_BeginRequest 上调用的分析器,但它记录了所有内容(即 javascript、图像等)。虽然作为最后的手段向分析器客户端添加过滤是可能的,但我更愿意只在确定请求需要路由时才激活分析器。理想情况下,它将在 Application_BeginRequest 中,但我认为如果不对传入的路由请求进行冗余处理,这是不可能的...

简而言之,我可以确定请求是否针对静态资源的请求生命周期中最早的时间点是什么时候,您将如何处理?

是否有可能从 System.Web.Routing.RouteTable 派生或挂接到 System.Web.Routing.RouteTable 并从那里调用我的探查器代码?

最佳答案

有多种选择。 首先 - 使用 Request.PhysicalPath 确定静态文件 - 检查: Check for a static file during Application_BeginRequest?

一种替代方法是将其作为处理程序并使用路径来记录要包含的文件类型 (*.aspx),例如在您的 web.config 中。然后您就可以很早就访问事件(请参阅 asp.net 管道)

或者只使用 httpmodule - 检查所有内容并仅分析您提到的非物理项目。

或者 - 使用您当前的方法和第一个链接来简单地检查 Request.PhysicalPath 并希望对您有用:)

关于c# - ASP.NET MVC - 请求周期中最早可以检测到静态资源请求的点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6823902/

相关文章:

javascript - ViewData编译错误: BC30203: Identifier expected

c# - 如何使用 Linq 对二维数组进行排序?

C#:如何使用 LINQ 从 IDictionary<E, ICollection<T>> 的集合中删除项目?

c# - 将对象类型属性映射到 Entity Framework 中的 varbinary(MAX)

JavaScript 警报没有响应

visual-studio-2010 - 在 Visual Studio 中使用 WebMatrix.Data 和 facebook 助手

c# - 为什么 IEqualityComparer<T> 有 GetHashCode() 方法?

asp.net-mvc - 确定我正在使用的 Kendo UI 版本和产品

asp.net-mvc-3 - 为什么_ViewStart.cshtml不能访问ViewBag对象?

jquery - 使用下拉列表的 Ajax.beginform 回发表单