快速业务通道

ASP.NET应用程序生命周期趣谈(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

这几天一直在看ASP.NET应用程序生命周期,真是太难了,我理解起来费了劲了,但偏偏它又是那么重 要,所以我希望能给大家带来一篇容易理解又好用的文章来帮助学习ASP.NET应用程序生命周期。这篇就 是了。

当你访问博客园想看我的这篇文章的时候,这个请求就被博客园的WEB SERVER(IIS)接收到了。博客 园IIS看了一眼我的请求,“噢,是.aspx啊,给ASP.NET去处理吧,就把我这个请求给了ASP.NET,并且说 :“这个你来处理,你处理完了之后把HTML给我,我好给邱爽一个回复”。

ASP.NET收到IIS传递过来的请求后也没时间抱怨啊 就开始干活儿了。怎么干的呢?

第一,它先创建了一个Context对象,它就像个箱子,箱子当然是来装东西的啦,装什么呢?

第二,ASP.NET创建了一个Request对象,包含了IIS传递给它的所有信息(IIS传递过来的实际就是个 Request嘛)。

第三,ASP.NET接着又创建了一个Response对象,用来装HTML的,也放进箱子(Context)

第四,然后,ASP.NET说,太累了,这活儿没个干,还是雇个人吧。就雇了个项目经理 (HttpApplication对象),然后就把箱子(Context)交给项目经理并且对它说,这里有我们收到的 Request,你需要做的就是把里面的Reponse填一下,具体怎么干你掂量着吧,就走了。

这个项目经理(HttpApplication对象)就想啊,凭啥活儿我干钱你们拿啊?不行,我得找俩苦力去, 于是就有了:程序员HttpModule和程序员HttpHandler,姑且就称他们为P_Module和 P_Handler吧,项目 经理先找到了P_Module.

P_Module(HttpModule)非常的能干,它能够去查看 ASP.NET交给项目经理(HttpApplication对象)的 箱子(Context),并且根据里面的东西做一些决定,比如安全啊(FormsAuthenticationModule),状态啊 (SessionStateModule )等等吧。在P_Module工作完成之后(也许已经改变了箱子里(Context)的内 容),项目经理开始找P_Handler来做填充Response的工作。现在招人难啊,找了好久也没招到,好吧, 找猎头(HttpHandler Factory)吧。猎头公司一看,“噢,要.aspx Handler啊",于是找来了一个天生就 善于并且愿意处理页面的P_Handler(.aspx页面最终会编译成一个有继承机构的 IHttpHander),然后交 给项目经理(HttpApplication)。项目经理看了一眼P_Handler之后,觉得还行,就把 P_Module处理过 的箱子交给它并且说:"处理一下这个箱子里的东西,然后交给我"。

P_Handler是个天生的处理页面的牛人,它根据Request 对象里的东西是用了一招"乾坤大挪移",不知 道怎么挪的,就挪出了HTML并塞进了Response对象中。P_Handler自信的笑了一声,把箱子交还给了项目 经理(HttpApplication对象)。项目经理从箱子里面把Response对象拿出来直接给了IIS,IIS又给了你 了,你就看到这篇文章了。

故事就是故事,故事就是故去的事,就是往事。那往事肯定就有遗漏的地方。那我们这个故事遗漏了 哪些地方呢?

第一,IIS和ASP.NET之间的交互不是像我说的那么简单而直接的,中间还发生了很多事情。

第二,HttpModule,也就是我们的程序员P_Module, 它其实还能干很多事情,我们并没有去发掘。

第三,HttpHandler,也就是我们的程序员P_Handler,它的"乾坤大挪移"就是ProcessRequest方法, 这里并没有详述到。

第四,。。。等我再想想再跟您聊。

希望这边小文能够帮助你更容易的理解ASP.NET生命周期,我会继续努力,争取以最简单明了的方式来 speak out ASP.NET原理和运行机制。欢迎拍砖,谢谢。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号