Jews

【Oracle dba,人类心理行为学,人类记忆学,e文学习】 【ASP.NET Team:27565311 】 【Oracle dba Team:53489331 加入请说明原因】

  博客园 :: 首页 ::  :: 订阅 订阅 :: 管理
  115 Posts :: 1 Stories :: 1888 Comments :: 46 Trackbacks

 asp.net框架

asp时代已经过去,web2.0的时代已经来临。asp.net2.0经过MS高度封装,在vs.net下的开发已经完全是傻瓜式的了,但我不愿只做个coding man

    在以往的asp时代,当请求一个*.asp文件的时候,这个请求首先被一个名为inetinfo.exe进程截获,打开任务管理器,发现inetinfo.exe其实就是www服务。Inetinfo.exe截获之后,马上把控制权交给一个名为asp.dll进程,asp.ddl就会解释和执行这个asp页面,之后把数据流返回给client浏览器,如果你是XP系统,就能在C:\WINDOWS\system32\inetsrv目录在找到该文件,此时的asp要通过解释执行,每请求一次,都要从头解释,人世间最痛苦的事,莫过如此。

既然有更新的技术,当然要使用新技术了,老使用旧技术也不能说明你用情专一,^-^

asp.net2.0时代,当clientIIS请求 *.aspx文件时,请求也同上面一样被inetinfo.exe进程截获,inetinfo.exe判断文件的后缀之后,将这个请求转交给aspnet_isapi.dll,(你可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下找到该文件),而aspnet_isapi.dll则会通过一个名为HttpPipeLine的管道,将这个请求发送给aspnet_wp.exe进程,(你可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727目录下找到该文件,同时在任务管理器中也可以找到),一旦http请求进入aspnet_wp.exe进程后,asp.net framework就会通过httpRuntime来处理这个请求,然后把数据流发送回client端的浏览器。

     只喜欢和美女聊天的男人,决不是好男人。我们可以把HttpRuntime看成一位美女。既然她是美女,那当然要研究研究了。HttpRuntime到底是什么呢?她不是一个实体,而是执行asp.net的一个抽象的大环境,记住这点很重要。我们来具体看看HttpRuntime到底是怎样执行的?当http请求进入httpRuntime之后,这个请求会被继续被送入到一个名为HttpApplication Factory的工厂中,工厂为这个http请求生成一个HttpApplication的实例,随后这个实例被送到HttpModule容器中,随后http请求继续送到HttpHandler Factory工厂,

这个工厂也会生成一个HttpHandler的实例,这个实例的processRequire方法处理传进来的请求,然后把处理好的结果和控制权交给HttpModule容器,HttpModule容器再把从HttpHandler实例处理好的数据流回发到clinet端的浏览器,这样一个Http请求的完美生命周期就结束了。

记住,真正处理Http请求的地方在HttpHandler实例的processRequire方法中,而到最后回发数据流到client端的地方是HttpModule容器中。

说了这么多,感觉有点乱,画个图,把整个流程整理清楚。
 

上面是我个人的理解,有不妥之处,请多多指点。

Tag标签: asp.net框架
posted on 2008-01-22 11:25 Jews 阅读(5610) 评论(38)  编辑 收藏 网摘 所属分类: [2] asp.net

Feedback

#1楼 2008-01-22 12:11 Clark Zheng      
有点意思
  回复  引用  查看    

#2楼 2008-01-22 12:19 exile[未注册用户]
呃~
容器,听起来像Java中的概念

  回复  引用    

人世间最痛苦的事,莫过如此。没了,ASP在对于要求不高的小网站其实很好作为的

人世间最痛苦的事 多着,对于我更是

  回复  引用    

#4楼 2008-01-22 12:24 wfe[未注册用户]
起点不也用asp,呵呵。
  回复  引用    

#5楼[楼主] 2008-01-22 12:40 wmj      
asp.net框架类似j2ee中的struts,spring等,只是不开源而已!
  回复  引用  查看    

#6楼 2008-01-22 12:56 xmlcss[未注册用户]
@wmj
最近好像开源了

  回复  引用    

#7楼[楼主] 2008-01-22 13:06 wmj      
开源 可以套一句广告词,“他好,我也好!”,哈哈^-^

  回复  引用  查看    

#8楼 2008-01-22 13:18 Wilensky      
不错,受教了
  回复  引用  查看    

#9楼 2008-01-22 13:19 风景年华      
asp.net的框架从开始就没有变过,只不过iis变了,加了个集成模式。
这个框架的工作流程在msdn上也已经写得很明白了,在iis6和iis7上是有区别的。

  回复  引用  查看    

#10楼 2008-01-22 13:25 jun      
建议题目改成:asp.net处理HTTP Request的流程
  回复  引用  查看    

#11楼 2008-01-22 13:33 cslar      
在vs.net下的开发已经完全是傻瓜式的了..

看了这句话,我也就不再说什么了。

  回复  引用  查看    

#12楼[楼主] 2008-01-22 13:40 wmj      
MSDN上有没有这样的文字,我不太清楚,此文只代表我个人的看法,
如果想更进一步了解她,可以看看“asp.net深度厉险”,个人觉得
次书很有深度。

  回复  引用  查看    

#13楼[楼主] 2008-01-22 13:56 wmj      
我自定义一个IHttpModule接口的实现类,在application_BeginRequest方法中,我通过HttpWorkerRequest类对象的ReadEntityBody()方法截获客户端的数据流,因为数据流被我人为截获了,所以会导致asp.net不能正常RUN。
在“程序员2006”12月刊中,有篇标题为“磊客中国视频社区解决方案”说,可以同过反射重新设置HttpWorkerRequest的私有字段_contentAvailLength,_contentTotalLength,_preloadedContent,_preloaded ContentRead的值后,就能正常RUN了,我弄了很久,没有解决,请个位帮忙,能给我解决的DEMO更好!

  回复  引用  查看    

#14楼 2008-01-22 14:08 留恋星空      
看看
  回复  引用  查看    

w3wp.exe是干啥的嗫
  回复  引用    

#16楼[楼主] 2008-01-22 14:42 wmj      
没有你说的w3wp.exe

只有aspnet_wp.exe进程,他是IIS6中专门用来处理ASP.NET的一个进程模块

  回复  引用  查看    

#17楼 2008-01-22 15:24 carysun      
@windwind
这个是sharepoint的进程啊

  回复  引用  查看    

#18楼 2008-01-22 15:37 风景年华      
http://msdn2.microsoft.com/en-us/library/aa531253.aspx" target="_new">http://msdn2.microsoft.com/en-us/library/aa531253.aspx

这里有一系列的文章讲解关于asp.net框架的东西。当初看到的时候,一看日期,我晕了:03,04年的东西了,嘿嘿。

  回复  引用  查看    

#19楼 2008-01-22 15:40 wfe[未注册用户]
@carysun
sharepoint不过是建立在asp.net之上的站点罢了,谁告诉你aspnet_wp.exe是sharepoint独有的?

  回复  引用    

#20楼 2008-01-22 15:45 doublog[未注册用户]
文章讲的不是asp.net框架吧 标题党?
  回复  引用    

#21楼[楼主] 2008-01-22 15:55 wmj      
风景年华 你如果有中文版的,可以贴出来,让大家都学习学习!
  回复  引用  查看    

#22楼 2008-01-22 17:01 PerfectDesign      
这个还没有将得太明白。
还要有涉及到的更具体的细节,控件初始化,视图状态初始化,会话初始化等等。

  回复  引用  查看    

#23楼 2008-01-22 17:03 蓝天旭日      
.net是系统化的,有面向对象的意义,asp效率虽好,但是比较凌乱!
不太喜欢asp,源码保护都是困难......

  回复  引用  查看    

#24楼 2008-01-22 20:43 m[未注册用户]
@ wfe
起点的新版已经全面转向ASP.NET了,作为一个PV过亿的网站使用ASP.NET,值得期待。。。

  回复  引用    

#25楼 2008-01-22 21:28 carysun      
@wfe
应该说sharepoint寄宿在W3Wp.exe中吧

  回复  引用  查看    

#26楼 2008-01-23 09:45 BlueMountain      
老贴,园子里很多人早就写过这方面的东西了。

w3wp.exe 是IIS7的。

  回复  引用  查看    

#27楼 2008-01-23 10:07 飞仙      
aspnet_wp.exe 好像是在 Windows XP 下的吧,
Windows 2003 是 w3wp.exe

  回复  引用  查看    

#28楼[楼主] 2008-01-23 10:23 wmj      
ASP.NET 辅助进程 aspnet_wp.exe 和w3wp.exe 是什么?

默认情况下,ASP.NET 进程(对于 Windows 2000 和 Windows XP 上的 IIS 5.0 和 IIS 5.1 为 aspnet_wp.exe,对于 Windows Server 2003 上的 IIS 6 为 w3wp.exe)作为 ASPNET 进程运行。

  回复  引用  查看    

#29楼 2008-01-23 22:31 ColdDog      
--引用--------------------------------------------------
wfe: 起点不也用asp,呵呵。
--------------------------------------------------------
起点正在改版,即将推出aspx的了
补充:不对,起点已经推出aspx的新版http://www.qidian.com/[测试版]

  回复  引用  查看    

#30楼 2008-01-28 14:53 ~[未注册用户]
--引用--------------------------------------------------
只喜欢和美女聊天的男人,决不是好男人
--------------------------------------------------------
嘻嘻。。。人气真高啊。加油加油!。。。孟大哥

  回复  引用    

#31楼[楼主] 2008-01-28 16:41 wmj      
@~
您是?

  回复  引用  查看    

#32楼 2008-02-23 14:10 涉江      
哥们,写的太少了.能够深入的研究呢?
我对这个主题很感兴趣,希望能够交流

  回复  引用  查看    

#33楼[楼主] 2008-02-25 09:36 王孟军!      
@涉江
你好!
我认为理解“页面运行环境”更加复杂点,因为“页面运行环境” 是建立在“运行时环境”之上的。

我本想写一些运行时的东东,但是害怕“老生常谈”,抽时间,我尽快补上一篇,到时候请多指教,多交流

  回复  引用  查看    

#34楼 2008-04-20 20:56 LanYo      
收藏,以后时间空一点就学学,win开发中......
  回复  引用  查看    

#35楼 2008-06-22 11:29 Fish.Mr      
看了的确又懂了很多,我想问下楼主,你这些顺序是去哪看的,买书还是有网址????
能不能推荐下

  回复  引用  查看    

#36楼 2008-08-11 10:13 停留的风      
支持。不过这是你个人见解,还是具体做了调试,跟踪过?
  回复  引用  查看    

#37楼 2009-02-03 16:40 书岳      
@cslar
何尝不是呢

  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1048344




相关文章:

相关链接: