ASP.NET生命周期详解 [转]
2016-06-13 23:10
716 查看
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等,对于ASP.NET MVC同样适用。只是MVC URLRouting Module对进入到server的request进行了拦截,然后对此次request的handler进行了特殊的处理。总结来说,就是 ASP.NET管道是所有ASP.NET Web Applicaiton,包括WebForm, MVC,是这两者的基础,这两者的不同,是在于最终使用的IHttpHandler的不同。WebForm中的使用的是Page这个 Handler,MVC中使用的是MVCHander.
首先详细了解一下ASP.NET的生命周期,下面三张图非常详细,转自用三张图片详解Asp.Net 全生命周期
说明:
1 第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处理完该请求并响应到客户端结束。
2 第二张图片为图1中Http处理管线的详细步骤
3 第三张图片为图2Http处理管线中调用处理程序(HttpHandler, 此处为Page对象)的详细生命周期过程。
图1:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/e53e467e2d1be064e6939f34fc81cd2c.png)
图2: Http处理管线详解
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/ce430f781493b4c053837d2dd03c2ae9.png)
图3: Asp.Net生命周期详解(WebForm的情况)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/2dd32f0a7980821c5d49b4bcf65c2ba4.png)
个人补充:这三张图结合原来的一篇文章ASP.NET MVC 流程概述简单的讲一下MVC的拦截原理。
通过流程概述这篇文章中的代码,并且 结合本文中第一张图分析,URLRouting Moudule在PostResolveRequestCache的时候对请求进行了拦截,并且进行相应的路由分析。 PostMapRequestHandler的时候完成的是本次请求的Handler的创建。注意,这里都是一些预处理,意识就是说,把以后真正要用到的 Http Handler先放入到HttpContext中,此时并没有调用ProcessRequest方法。PostMapRequestHandler完成后还要继续其他的管道事件,如AquireRequestState等,真正执行Handler的Process Request方法是在PostRequestHandlerExecute. 最终会按照顺序走完管道中的每一个事件。
首先详细了解一下ASP.NET的生命周期,下面三张图非常详细,转自用三张图片详解Asp.Net 全生命周期
说明:
1 第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处理完该请求并响应到客户端结束。
2 第二张图片为图1中Http处理管线的详细步骤
3 第三张图片为图2Http处理管线中调用处理程序(HttpHandler, 此处为Page对象)的详细生命周期过程。
图1:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/e53e467e2d1be064e6939f34fc81cd2c.png)
图2: Http处理管线详解
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/ce430f781493b4c053837d2dd03c2ae9.png)
图3: Asp.Net生命周期详解(WebForm的情况)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/28/2dd32f0a7980821c5d49b4bcf65c2ba4.png)
个人补充:这三张图结合原来的一篇文章ASP.NET MVC 流程概述简单的讲一下MVC的拦截原理。
通过流程概述这篇文章中的代码,并且 结合本文中第一张图分析,URLRouting Moudule在PostResolveRequestCache的时候对请求进行了拦截,并且进行相应的路由分析。 PostMapRequestHandler的时候完成的是本次请求的Handler的创建。注意,这里都是一些预处理,意识就是说,把以后真正要用到的 Http Handler先放入到HttpContext中,此时并没有调用ProcessRequest方法。PostMapRequestHandler完成后还要继续其他的管道事件,如AquireRequestState等,真正执行Handler的Process Request方法是在PostRequestHandlerExecute. 最终会按照顺序走完管道中的每一个事件。
相关文章推荐
- asp.net core
- asp.net web开发所用到的技术
- IIS7.5 配置自定义后缀的ASP文件 无法执行 总是提示下载的解决方法
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引
- asp.net mvc Code First模式下迁移更新数据库
- Android基于AOP的非侵入式监控之——AspectJ实战
- asp.net C#对xml文档创建 修改 删除 查找
- asp.net pagebase获取缓存的方法
- raspberry内核编译和模块开发
- ASP.NET 发送电子邮件 smtp
- asp.net执行cmd命令
- ASP.NET页面优化,提高载入速度方法大全-压缩页面
- ASP.NET Core 中文文档 第二章 指南(4.2)添加 Controller
- ASP.NET Core MVC 与 Visual Studio 入门
- 当前标识没有对"Temporary ASP.NET Files"的写访问权限的解决办法
- asp.net课程设计——物流信息供求网
- ASP.NET 4.5.256 尚未在Web服务器上注册。
- 百度UEditor1.4.3编辑器和asp.net MVC 5结合
- Leveraging the Power of Asynchrony in ASP.NET [转]
- IIS asp 401.1错误