码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET 请求处理完整过程

时间:2014-10-07 13:14:33      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   ar   for   strong   文件   

请求过程

1.客户端发送请求给服务器端。

2.首先由服务器端的HTTP.SYS内核模块接受,根据端口分发给IIS(或者其他web服务器软件)。

3.IIS(由一个软件进程,一个w3svc服务组成)接收到请求后,会根据端口分发给指定的工作进程

4.工作进程会对所请求的文件的文件扩展名进行检查,交给对应的扩展程序处理。(如 .aspx、.ascx、.ashx 和 .asmx则交给aspnet_isapi.dll扩展程序)

5.当请求为.aspx时,扩展程序会交给ASPNetRuntime托管环境调用ISAPIRuntime.ProcessRequest(IntPtr ecb)方法,(ecb就是请求的句柄。句柄就是操作系统对一个资源的标识)。

6.ISAPIRuntime的PR方法中 把请求封装成HttpWorkRequest对象 然后调用HttpRuntime.pr方法。

7.在HttpRuntime的PR方法中,把HttpWorkRequest对象封装成HttpContext对象。然后通过HttpApplicationFactory生产一个HttpApplication对象出来。

8.HttpApplication对象会拿着这个HttpContext对象走管线处理请求。

9.在管线请求中,第7和8事件中默认会根据请求实例化实现IHttpHandle的对象A。第11,12事件中,会调用A的PR方法

10.如果A是一般处理程序,则直接调用PR方法。如果是aspx程序,则会走页面生命周期过程。

bubuko.com,布布扣

 

页面生命周期

1.Create Instance 创建所有控件

2.IsPostBack 确定是不是第一次处理该页

3.Init 所有控件都已初始化且已应用所有外观设置后引发

3.ViewState 加载ViewState设置控件值

4.Load 执行所有的Load事件

5.ChangeEvent 执行控件更改的事件

6.Complete 事件

7.PreRender 预呈现页面,最后更改页面的机会

8.SaveState 保存状态放到页面中

9.Render 呈现页面

10.Unload 卸载

 bubuko.com,布布扣

 

管线事件

ASP.NET 请求处理完整过程

标签:style   http   color   io   os   ar   for   strong   文件   

原文地址:http://www.cnblogs.com/neverc/p/4009113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!