博客网站做啥好,汝南网站建设,泉州网页模板建站,电子商务网站建设侧重点原文地址#xff1a;http://www.cnblogs.com/skm-blog/archive/2013/07/07/3176713.html Asp.Net生命周期对于初级甚至中级程序员来说#xff0c;一直都是一个难题#xff0c;很多程序员不了解生命周期#xff0c;导致使用Asp.Net做开发感觉很不灵活#xff0c;感觉太多东…原文地址http://www.cnblogs.com/skm-blog/archive/2013/07/07/3176713.html Asp.Net生命周期对于初级甚至中级程序员来说一直都是一个难题很多程序员不了解生命周期导致使用Asp.Net做开发感觉很不灵活感觉太多东西被微软封装好了我们不能改变其实只要你稍微了解一下就知道原来不是这样的 我写这一系列文章是采用总分的方式先让大家整体了解然后再逐一突破。先将一个故事也是园子里看到的http://www.cnblogs.com/GodSpeed/archive/2010/06/19/1761095.html我认为这个写的有些细节上的错误稍稍添加些自己的想法和理解如有错误还请留言 当你访问博客园想看我的这篇文章的时候这个请求就被博客园的WEB SERVERIIS接收到了【其实是被IIS中的一个叫做inetinfo.exe的进程截获了】。博客园IIS看了一眼你的请求“噢是.aspx啊给aspnet_isapi.dll去处理吧就把我这个请求给了aspnet_isapi.dll 并且说“这个你来处理你处理完了之后把HTML给我我好给请求者一个回复”。 aspnet_isapi.dll收到IIS传递过来的请求后也没时间抱怨啊 就开始干活儿了。怎么干的呢其实啊很简单就是通过一个http pipeline管道转交给了aspnet_wp.exe进程接下来就到了.netFramework的HttpRunTime处理中心HttpRunTime它其实就是做了几件事情。 第一它先创建了一个Context对象它就像个箱子箱子当然是来装东西的啦装什么呢 第二HttpRunTime创建了一个Request对象包含了IIS传递给它的所有信息IIS传递过来的实际就是个Request嘛。 第三HttpRunTime接着又创建了一个Response对象用来装HTML的也放进箱子Context 第四然后HttpRunTime说太累了这活儿没个干还是雇个人吧。就找到了HttpApplication Factory公司要了一个项目经理HttpApplication对象然后就把箱子Context交给项目经理并且对它说这里有我们收到的Request你需要做的就是把 里面的Reponse填一下具体怎么干你掂量着吧就走了。 这个项目经理HttpApplication对象就想啊凭啥活儿我干钱你们拿啊不行我得找俩苦力去于是就有了程序员HttpModule和程序员HttpHandler姑且就称他们为P_Module和 P_Handler吧项目经理先找到了P_Module并且给予了p_Module足够大的权力P_Module(HttpModule)非常的能干它能够去查看HttpRunTime交给项目经理HttpApplication对象的箱子Context并且根据里面的东西做一些决定比如安全啊 FormsAuthenticationModule),状态啊SessionStateModule 等等吧。 在P_Module工作完成之后也许已经改变了箱子里Context的内容然后他就转交给他的副手P_Handler来做填充Response的工作。 可是啊想找个合适的P_Handle也很难啊找了好久也没找到好吧找猎头HttpHandler Factory吧。猎头公司一看“噢要.aspx Handler啊,于是找来了一个天生就善于并且愿意处理页面的P_Handler所以呢P_Module就把自己处理过的箱子交给它并且说:处理一下这个箱子里的东西然后交给我。 P_Handler是个天生的处理页面的牛人它根据Request对象里的东西是用 了一招乾坤大挪移不知道怎么挪的就挪出了HTML并塞进了Response对象中。P_Handler自信的笑了一声把箱子交还给了HttpModule。然后呢再一层一层的把这个箱子向上传递【不能越级啊每个人都有自己顶头上司只能把箱子交给自己的顶头上司】最后就传给了IISIIS又给了你了你就看到这篇文章了。 故事就是故事故事就是故去的事就是往事。那往事肯定就有遗漏的地方。那我们这个故事遗漏了哪些地方呢 第一IIS和ASP.NET之间的交互不是像我说的那么简单而直接的中间还发生了很多事情。 第二HttpModule也就是我们的程序员P_Module, 它其实还能干很多事情我们并没有去发掘。 第三HttpHandler也就是我们的程序员P_Handler它的乾坤大挪移就是ProcessRequest方法这里并没有详述到。 第四。。。等我再想想再跟您聊。 希望这边小文能够帮助你更容易的理解ASP.NET生命周期我会继续努力争取以最简单明了的方式来speak out ASP.NET原理和运行机制。欢迎拍砖谢谢。 转载于:https://www.cnblogs.com/fcsh820/p/3178839.html