ASP.NET简单运行原理

ASP.NET请求处理流程
本文详细介绍了ASP.NET应用程序从IIS接收请求到处理完成的整个流程。包括IIS如何识别并传递控制权给ISAPI,ISAPI启动ASP.NET工作进程,并加载所需组件,最后通过HttpRuntime、HttpApplication等组件完成请求处理。

如图所示:

1.一个ASP.NET的应用程序是开始于IIS.

2.IIS检测如果是ASP.NET应用程序会将控制权传递给ISAPI,名叫ASPNET_ISAIP.DLL的文件

3.ISAPI接受到处理请求时,启动一个ASP.NET工作进程。并且将控制权传递给ASPNET_WP.EXE文件

4.ASPNET_WP就会建立一个APPDOMAIN,并且将被请求的ASP.NET应用所需的Assembly(就是那些DLL,例如System.Web.DLL等)载入到APPDOMAIN中,ASPNET_WP不光负责建立APPDOMAIN,如果已经存在的话,就直接使用已经存在的,另外,它在APPDOMAIN建立后,还会将请求转发至对应的APPDOMAIN中的ISAPIRuntime对象。(Isapiruntime对象是APPDOMAIN的一部分)。ISAPIRUNTIME专门负责解出请求的必要信息,它将信息和请求转交给HttpRuntime。这里,需要说明的是IsapiRuntime是一个类,它的全称是System.Web.Hosting.ISAPIRuntime,而HttpRuntime也是一个类,它的全称是System.Web.HttpRuntime。因此,可以说,这两个对象是APPDOMAIN运行环境的一部分,在ASPNET_WP建立APPDOMAIN的同时,也会作为运行环境来建立这两个对象.

5.当APPDOMAIN初始化完成后,接下来就需要建立会话了吧,因此,请求由HttpRuntime来接受,HttpRunTime主要的工作便是为每一个提出请求的客户建立一个HttpContext对象.每一个访问者有各自的HttpContext对象和HttpSession对象,这些对象,你可以在.NET FRAMEWORK库中找到对应的类名,像System.Web.HttpContext,System.Web.HttpSessionState等.HttpRuntime负责创建HttpContext和HttpSession,httpContext负责管理httpSession。HttpRuntime除了创建上面的对象外,还要创建HttpApplication.至于创建Application对象的过程,是比较复杂的.

6.接下来请求控制权交给HttpApplication, HttpApplication调用ProcessRequest方法来处理用户请求,此方法会调用对应的HttpHandler来处理用户请求,HttpHandler根据用户请求的文件的扩展名处理请求,并把请求的结果,也就是HTML发送到客户浏览器

 

转载于:https://www.cnblogs.com/michaelShao/archive/2010/02/24/1672789.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值