》浏览器通过网络访问服务器
》IIS接受服务请求
》IIS分析请求,返回静态结果(静态文件);处理不了的请求发送到ASPNET_ISAPI.DLL可扩展程序
》可扩展程序程序把请求交给aspnet_wp.exe或者aspnet_w3wp.exe程序
》aspnet_wp.exe或者aspnet_w3wp.exe调用IHttpRunTime接口的方法处理请求。由IHttpRunTime来处理所有的请求,他的工作:
(1)将报文数据装入HttpWorkerRequest对象对应的属性(便于其他地方使用)
(2)调用HttpApplicationFactory类的静态方法创建HttpApplication对象。(创建之前查看HttpApplication池,有没有空闲HttpApplication
,没有才创建)
(3)创建HttpContext上下文,HttpContext主要包含HttpRequest和HttpRespnose两个对象
HttpRequest包含所有的请求信息,来源于HttpWorkerRequest对象的属性
HttpResponse包含TestWriter对象,来存储返回结果
(4)需要将HttpContext对象保存到HttpApplication对象中,因为HttpApplication对象要执行IHttpHandler接口对象的ProcessRequest方法需
要上下文
》HttpApplication执行ProcessRequest方法(即执行管道),一共有19个事件,第八个事件时创建HttpHandler对象(页面对象),11到12事件
之间,执行被创建HttpHandler对象的ProcessRequest方法。
页面生命周期:
页面初始化 Page_Init 加载主题、应用母版页
加载View State LoadViewState 加载页面试图
回发数据处理 LoadPostData
页面加载 Page_Load
回发通知 RaisePostDataChangedEvent
页面预渲染 Page_PreRender
保存viewState SaveViewState
Page渲染 page_Render
Page卸载 page_UnLoad
你的问题是什么?
你想问点什么呢?你说的这个确实是这样的。
基本是这个流程 你可以用Reflector反编译试试