ASP.NET 生命周期,PreRequestHandlerExecute 事件

Posted

技术标签:

【中文标题】ASP.NET 生命周期,PreRequestHandlerExecute 事件【英文标题】:ASP.NET life cycle, PreRequestHandlerExecute Event 【发布时间】:2013-04-13 09:52:48 【问题描述】:

我正在寻找能够处理我的请求的处理程序。 我想知道请求是否要求静态资源(即 css、js 或图像文件)。 在检查 PreRequestHandlerExecute 事件上的 HttpContext.Request 时,我发现对于静态资源和任何其他自定义处理程序或 aspx 页面,处理程序和 currentHandler 变量为空,我有处理程序和 currentHandler 变量。

我的问题是:不同的处理程序处理请求是否是个好地方? 我不想通过从 system.web/httpHandlers 获取处理程序文件扩展名来识别它,因为我不想只使用 system.web/httpHandlers system.webServer/handlers。而且我不想使用 Microsoft.Web.Administration 命名空间,因为这会让我修改所有服务器上的配置。

【问题讨论】:

【参考方案1】:

忘记更新我的解决方法了。实际上,我确实在 PostMapRequestHandler 事件中将原生处理程序与自定义处理程序不同。如果您的请求将由本机处理程序处理,则 HttpContext.Request 的处理程序和 currentHandler 变量将为空。此外,通过将 runAllManagedModulesForAllRequests 设置为将由本机处理程序处理的错误请求,甚至希望引发 PostMapRequestHandler 事件。希望这对某人有所帮助。

【讨论】:

以上是关于ASP.NET 生命周期,PreRequestHandlerExecute 事件的主要内容,如果未能解决你的问题,请参考以下文章

[译] ASP.NET 生命周期 – ASP.NET 请求生命周期

ASP.NET 页生命周期概述

Asp.Net生命周期

ASP.NET 页生命周期概述1

ASP.NET Page执行顺序(ASP.NET生命周期)

IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述