为了给这个问题提供一些背景信息,我编写了一个在 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/