前言:在用ASP.NET开发网站的时候,常常看到"生命周期"周期整个词,在ASP.NET AJAX客户端开发时,也有生命周期的概念。觉得微软很喜欢引入生命周期。其实生命周期还是蛮好的,可以使得我们对程序运行的每个过程都可以掌控,提供更加灵活的开发。如果被生命周期弄糊涂了就不好了...
本系列的文章中很少涉及代码,希望大家见谅!
我这里也不想罗列MSDN上的东西。而是想尽量的把相应的知识说的更加通俗。简单的说来,再ASP.NET运行的时候一般会有两个比较明显的生命周期。一个发生再Http管道的生命周期,另外一个就是我们常说的页面的生命周期。生命周期说白了就是处理的流程。
下面我们就来分别的介绍这两个生命周期。
Http管道中的生命周期(将其中重要的讲解下)。
其实所谓的http管道简单的说其实就是加载相应的httpmodule和httphandler的过程。应该还记得我们之前的那幅图。如下:

图片看不清楚?请点击这里查看原图(大图)。
当一个请求被ASP.NET 运行时开始处理的时候,http管道就开始加载很多的httpmodule(http模块)和处理相应资源的httphandler(http处理程序)。我们就从一个请求被处理的流程来说起(是按照被处理的先后顺序来说的)。
首先,当一个请求来了以后,ASP.NET运行时就要开始处理这个请求。大家应该还知道,再一个ASP.NET程序来开始运行的时候,应用程序域(Domain)中会初始化一个HttpApplication类的实例来主导整个程序的运行,通俗的说就是用一个对象来控制整个程序的运行流程。请求来了,HttpApplication类的实例(以后简称Application)就触发BeginRequest事件(请求开始)来开始处理请求。从这点意义来说,我们其实可以把http管道生命周期这个过程看成是Application处理一个请求的时候触发相应事件的过程。而且Application的事情的触发是自动的,而且我们也可以注册这些事件,以便在相应的时候执行我们的代码。比如在这个事件中,因为请求刚刚开始,其实我们可以注册这个事件来执行url的重写,来把请求的url重新定位。比如我们原来请求http://www.cnblogs.com/yanyangtian,但是在网站的服务器中,没有yanyangtian这个文件夹或者文件,其实这就是url重写的例子,其实就是在这个BeginRequest中把url换成了http://www.cnblogs.com/index.aspx?name=yanyantian.
下一篇:没有比当前更新的主题
评论加载中...- 2009-3-7浅谈ASP.NET内部机制(四)
- 2009-3-7TheBeerHouse 网站项目学习笔记(5)---架构设计
- 2009-3-7ASP.NET底层机制 (下) HttpHandler
- 2009-3-7ASP.NET底层机制 (上) HttpModule
- 2009-3-7使用ASP.NET MVC Futures 中的异步Action
- 2009-3-7asp.net 在使用Response.Redirect try{}catch{}块失效
- 2009-3-7让UserControl 成为 Asp.Net ajax 控件
- 2009-3-7小议ADO.NET对象模型
- 2009-3-7aspx页面生成详解
- 2009-3-7关于页面跳转最后返回让原页面保持最初结果的处理办法
