您所在的位置:开发 > 架构&设计 > ASP.NET底层架构探索之ASP.NET管道(1)

ASP.NET底层架构探索之ASP.NET管道(1)

2006-09-25 09:53 中国IT实验室 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

HttpApplication触发事件来通知你的程序有事发生,以此来负责请求流转。这作为HttpApplication.Init()函数的一部分发生,连续设置并启动一系列事件。

AD:

HttpApplication触发事件来通知你的程序有事发生,以此来负责请求流转。这作为HttpApplication.Init()函数的一部分发生(用Reflector查看System.Web.HttpApplication.InitInternal()方法和HttpApplication.ResumeSteps()方法来了解更多详情),连续设置并启动一系列事件,包括执行所有的处理器(handler)。这些事件处理器映射到global.asax中自动生成的哪些事件中,同时它们也映射到所有附加的HttpModule(它们本质上是HttpApplication对外发布的额外的事件接收器(sink))。

HttpModule和HttpHandler两者都是根据Web.config中对应的配置被动态载入并附加到事件处理链中。HttpModule实际上是事件处理器,附加到特殊的HttpApplication事件上,然而HttpHandler是用来处理”应用级请求处理”的终点。  
HttpModule和HttpHandler两者都是在HttpApplication.Init()函数调用的一部分中被载入并附加到调用链上。图6显示了不同的事件,它们是何时发生的以及它们影响管道的哪一部分。

 

图6:事件在ASP.net http管道中流转的过程

HttpApplication对象的事件驱动请求在管道中流转.HttpModule可以拦截这些事件并覆盖或者扩展现有的功能。 

HttpContext, HttpModules 和 HttpHandlers 

httpApplication它本身对发送给应用程序的数据一无所知-它只是一个通过事件来通讯的消息对象。它触发事件并通过HttpContext对象来向被调用函数传递消息。实际的当前请求的状态数据由前面提到的HttpContext对象维护。它提供了所有请求专有的数据并从进入管道开始到结束一直跟随请求。图7显示了ASP.NET管道中的流程.注意上下文对象(即HttpContext),这个从请求开始到结束一直都是你“朋友”的对象,可以在一个事件处理函数中保存信息并在以后的事件处理函数中取出。

内容导航

网友评论TOP5

查看所有评论(

提交评论

  1. 编程排行榜:图形编程的LOGO语言
  2. 什么是响应式Web设计?

热点专题

更多>>

读书

Scrum敏捷项目管理
本书详细描述如何在复杂技术项目中使用Scrum,并结合真实的Scrum案例及专家洞识,在简明及高度概括的理论之上更侧重于实践,并不

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone