- 热门文章:
- · 我写的上传(upload)文件的codebehind代码(1gdt)
- · 我写的上传(upload)文件的codebehind代码
- · 先装.net后装IIS的问题
- · Coalesys.WebMenu source code(partial)(5)
- · Coalesys.WebMenu source code(partial)(6)
- · Coalesys.WebMenu source code(partial)(7)
- · Coalesys.WebMenu source code(partial)(8)
- · Coalesys.WebMenu source code(partial)(9)
- · Coalesys.WebMenu source code(partial)(4)
- · Coalesys.WebMenu source code(partial)(10)
- · Coalesys.WebMenu source code(partial)(2)
- · Coalesys.WebMenu source code(partial)(1)
上一篇:ASP.NET中异常处理使用(详细) >>
ASP.NET Framework深度历险(1)
Author:uestc95
E-mail:uestc95@263.net
记得前一段时间有本不错的书叫Delphi深度历险,写得不错,我也就暂且借用了,:)
在这里我不打算简单介绍ASP.NET的入门知识了,ASP.NET除了名字和古老的ASP有些相同外,已经是完完全全的改变了,虽然你仍能在ASP.NET中发现你熟悉的Session,Application等等,但是不要尝试将他们同远古的ASP时代的Session等等画上等号。
我们来慢慢的深入到ASP.NET Framework的核心内部,看看她是如何实现的,看看她是如何能承担起下一代Web开发技术平台这个美誉的。
这篇东东不曾想过要完成多少章节,也没有这个必要,权当日记的形式存在,或许很短,或许很长,我会尽我的所能来将ASP.NET Framework展现在诸位面前。
如果你对ASP.NET Framework没有任何了解,你同样可以成为ASP.NET coding高手,如果是这样,你就不必继续看下去了。
Chapter One -- Process a http request.
我们瞧一瞧ASP.NET Framework的运行机制和架构。
在开始之前,我们先跟随考古学家参观一下古老的ASP运行机制:
当你请求一个*.asp文件的时候,这个http request首先被inetinfo.exe进程所截获,这个inetinfo.exe进程就是WWW服务进程,然后她会将这个请求转交给asp.dll进程,asp.dll进程就会解释执行这个asp叶面,然后将解释后的数据流返回给客户端浏览器。
转过头来我们看看如今的ASP.NET Framework是如何处理一个http request.
当你请求一个*.aspx文件的时候,同样的这个http request会被inetinfo.exe进程截获,她判断文件的后缀之后,将这个请求转交给ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过一个被称为Http PipeLine的管道,将请求发送给ASPNET_WP.exe进程,当这个http request进入ASPNET_WP.exe进程之后,会通过HttpRuntime来处理这个请求,处理完毕将结果返回客户端。
OK,好像并没有太大的改进嘛,不要着急,在ASP.NET Framework中我们甚至能够了解到HttpRuntime的细节。好,继续深入下去:
当Http Request进入HttpRuntime之后,会继续进入到一个被称之为HttpApplication Factory的一个Container中,她会给出一个HttpApplication来处理传递进来的请求,这个请求会依次进入如下几个Container:HttpModule->HttpHandler Factory->HttpHandler。
当系统内部的HttpHandler的ProcessResquest方法处理完毕之后,整个Http Request就完成了,客户端也就得到相应的东东了。
整理一下ASP.NET Framework处理一个Http Request的流程:
HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->Http Pipeline-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()
或许会问,我知道这个处理流程有什么用处呢?当然有用了,比如如果你想要中途截获一个Http Request并且做些自己的处理,该如何做呢?这是下一次我们探讨的东东了,下次我们详细讨论处理的细节问题。
see you later
(待续,欢迎探讨:uestc95@263.net)
相关文章:
- · Coalesys.WebMenu source code(partial)(3)
- · .NET Framework環境下的ASP網頁製作(1) (王国荣)
- · .NET Framework環境下的ASP網頁製作(2)(王国荣)
- · 运行时修改Web.config中的元素值 zhenyu(原作)
- · 发送HTTP请求的两种方式
- · 关于上下文-2 (转自msdn)
- · 关于上下文-1 (转自msdn)
- · ASP.NET移植须知(续)
- · ASP.NET移植须知
- · 深度剖析Duwamish 7.0 (1--数据结构)
- · 用C#实现无需iiS环境就可以执行aspx文件
- · 解决一个比较奇怪的NET问题的方法
- · asp.net datagrid如何在最后一行作求和:
- · HTTPBrowserCapabilities---在asp.net中显示浏览器属性
- · 将xml作为DataGrid 操作(Sort, Edit, Delete)
- · 使用net classes访问其他网站内容
- · 在asp.net中调用Excel 文件
- · 如何利用RowFilter 属性从一个dataset中创建两个不同的datagrid
- · 使用.NET访问Internet(5) Paul_Ni(原作)(补充)
- · 使用.NET访问Internet(5) Paul_Ni(原作)
- · 使用.NET访问Internet(4) Paul_Ni(原作)(补充)
- · 使用.NET访问 Internet(3) Paul_Ni(原作)
- · 使用.NET访问Internet(4) Paul_Ni(原作)
- · 使用.NET访问 Internet(2) Paul_Ni(原作)
- · 修改后的Whois查询程序
- · 使用.NET访问 Internet(1) Paul_Ni(原作)
- · 如何取得动态装载的WEB CONTROL的属性值?
- · POP3 Client as a C# Class(转自CodeProject)
- · 饼图的一种画法(转载自aspcool)
- · 精品:Asp3.0中email有效性验证
- · 使用Div加速页面的显示(原创)
- · Creating DataGrid Templated Columns Dynamically - Part I(转自Dotnettips)
- · 关于asp.net的代码重用
- · Getting Datagrid Columns Keypress,Keyup, Keydown and other events to Fire(一个很好的东西)
- · runat=server
- · 关于上下文(Context)/2(转MS)
- · 关于上下文(Context)/1(转MS)
- · 在.NET中使用静态变量来代替Application变量
