httppipeline管道

130 阅读1分钟

Pipeline完整的图例

 

MapHandlerExecutionStep、引发PostMapRequestHandler事件:当无法由输出缓存进行处理时,则进入了正规的处理过程中。而正规处理的第一步 ,就是根据配置获取IHttpHandler的实例对象, 从代码层次上说, 就是设置好HttpContext.Handler属性。该Handler将具体根据上下文信息生成具体的Html等代码。

      最最常见的Handler对象就是Page类及其各个子类,也就是我们编写的每一个aspx页面,都是一个具体的Handler,MapHandlerExecutionStep类将根据用户访问各个aspx页面的url从而确定具体的page子类。

      另外,还有HttpForbiddenHandler,当用户访问App_Code、App_Data等目录中的资源 时,MapHandlerExecutionStep就返回HttpForbiddenHandelr,该Handler将仅仅告诉用户该资源无法访问等 信息,从而起到保护特定资源的作用。

      还有TraceHandler,该Handler当且仅当用户访问根目录下的"trace.axd"资源时返回,从而实现Asp.net跟踪的功能。

      用户可以注册更多的自定义Handler,已满足更多的特定的需求。

      在IIS7.0的集成管线模式下,还将引发MapRequestHandler事件。

      PostMapRequestHandler事件默认不被任何Module订阅。