有没有人知道某个站点或页面,或者知道HTTPAppodule事件执行的HTTPApplication类事件的执行顺序?
我找到了所有活动的MSDN Documentation,但它没有显示流程步骤列表,但我找不到。
答案 0 :(得分:78)
也许这有帮助
http://support.microsoft.com/kb/307985/en-us/
HttpApplication类提供了许多模块可以同步的事件。以下事件可用于与每个请求同步的模块。这些事件按顺序列出:
以下事件可供模块与每个请求传输同步。这些事件的顺序是不确定的。
请参阅文章了解完整信息。
答案 1 :(得分:50)
MSDN Library文档:
以下是ASP.NET 4.0请求管道中的事件(粗体)和其他步骤:
- 验证请求,该请求检查浏览器发送的信息并确定其是否包含潜在的恶意标记。
- 如果在Web.config文件的UrlMappingsSection部分中配置了任何URL,则执行URL映射。
- 提升 BeginRequest 事件。
- 举起 AuthenticateRequest 事件。
- 提高 PostAuthenticateRequest 事件。
- 提升 AuthorizeRequest 事件。
- 提升 PostAuthorizeRequest 事件。
- 提升 ResolveRequestCache 事件。
- 提升 PostResolveRequestCache 事件。
- [IIS 5.0 / 6.0] 根据所请求资源的文件扩展名(映射到应用程序的配置文件中),选择一个实现IHttpHandler的类来处理请求。如果请求是针对从Page类派生的对象(页面)并且需要编译页面,则ASP.NET会在创建页面实例之前编译该页面。 [IIS 7.0] 提升 MapRequestHandler 事件。根据所请求资源的文件扩展名选择适当的处理程序。处理程序可以是本机代码模块,例如IIS 7.0 StaticFileModule,也可以是托管代码模块,例如PageHandlerFactory类(处理.aspx文件)。
- 提升 PostMapRequestHandler 事件。
- 提升 AcquireRequestState 事件。
- 提升 PostAcquireRequestState 事件。
- 举起 PreRequestHandlerExecute 事件。
- 为请求调用适当的IHttpHandler类的ProcessRequest方法(或异步版本IHttpAsyncHandler.BeginProcessRequest)。例如,如果请求是针对页面的,则当前页面实例处理该请求。
- 举起 PostRequestHandlerExecute 事件。
- 提升 ReleaseRequestState 事件。
- 提升 PostReleaseRequestState 事件。
- 如果定义了Filter属性,则执行响应过滤。
- 提升 UpdateRequestCache 事件。
- 提升 PostUpdateRequestCache 事件。
- [IIS 7.0] 提升 LogRequest 事件。
- [IIS 7.0] 提升 PostLogRequest 事件。
- 提升 EndRequest 事件。
- 举起 PreSendRequestHeaders 事件。
- 提升 PreSendRequestContent 事件。
醇>注意:仅当应用程序在IIS 7.0中以集成模式运行并且使用.NET Framework 3.0或更高版本时,才支持MapRequestHandler,LogRequest和PostLogRequest事件。
答案 2 :(得分:0)
接受的答案已过期。以下是根据the documentation引发事件的顺序的列表:
BeginRequest
AuthenticateRequest
PostAuthenticateRequest
AuthorizeRequest
PostAuthorizeRequest
ResolveRequestCache
PostResolveRequestCache
在PostResolveRequestCache事件之后和PostMapRequestHandler事件之前,将创建一个事件处理程序(与请求URL对应的页面)。当服务器在集成模式下并且至少在.NET Framework 3.0版中运行IIS 7.0时,将引发MapRequestHandler事件。当服务器以经典模式或IIS的早期版本运行IIS 7.0时,将无法处理此事件。
PostMapRequestHandler
AcquireRequestState
PostAcquireRequestState
PreRequestHandlerExecute
PostRequestHandlerExecute
ReleaseRequestState
PostReleaseRequestState
UpdateRequestCache
PostUpdateRequestCache
LogRequest
PostLogRequest
EndRequest