大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > ASP.NET的运行原理与运行机制(图文)

ASP.NET的运行原理与运行机制(图文)

关键词:ASP.NET运行原理运行机制  阅读(923) 赞(53)

[摘要]本文主要介绍ASP.NET的运行原理与运行机制,图文详细教程。

ASP.NET的运行原理与运行机制

当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块。在ASP.NET 3.5中,这个模块叫做HttpHandlerHTTP处理程序组件),之所以aspx这样的文件可以被服务器处理,就是因为在服务器端有默认的HttpHandler专门处理aspx文件。IIS在将这条请求发送给能够处理这个请求的模块之前,还需要经过一些HttpModule的处理,这些都是系统默认的Modules(用于获取当前应用程序的模块集合),在这个HTTP请求传到HttpHandler之前要经过不同的HttpModuls的处理。这样做的好处,一是为了一些必须的过程,二是为了安全性,三是为了提高效率,四是为了用户能够在更多的环节上进行控制,增强用户的控制能力。ASP.NET 3.5运行原理如图1所示。

1 ASP.NET 3.5运行原理

说明:HttpModule模块是一个组件,可以注册为ASP.NET 3.5请求生命周期的一部分,当处理该组件时,该组件可以读取或更改请求或响应。HttpModule模块通常用于执行需要监视每个请求的特殊任务,如安全或站点统计信息

ASP.NET 3.5运行机制如图2所示。

2 ASP.NET 3.5运行机制

通常情况下,ASP.NET框架搭建在Windows Server(服务器版操作系统)+IISWeb服务器,是Internet 信息服务管理器的英文缩写)环境中,在安装.NET FrameWork时,安装程序将会在IIS中注册ASP.NET所需的ISAPI扩展(aspnet_isapi.dll),这就使得作为ASP.NET宿主的IIS在接收到客户端的HTTP请求后,将响应请求的控制权交给ASP.NET运行时。

ASP.NET运行时接收到请求后,会判断站点是否为第一次被访问,如果是第一次访问,则运行初始化工作(如加载Bin目录中的DLL动态链接库,读取Web.Config网站配置文件,初始化HttpApplication实例,编译和加载Global.asax文件等等)。ASP.NET运行时还负责创建请求响应线程的HttpContext上下文实例和创建承载响应结果的HttpTextWriter实例。然后,ASP.NET运行时寻找合适HttpHandler(通常就是具有的ASP.NET页面)处理HTTP请求,并等HttpHandler返回请求处理结果。最后,ASP.NET运行时在完成一些后续工作之后,如保存Session、异常处理,再通过IIS把响应结构返回给客户端。

注意:ASP.NET ISAPI的工作也主要任务就是安排aspnet_wp.exe处理请求,并监视aspnet_wp.exe进程的执行情况,如果aspnet_wp.exe进程不能完成任务,ASP.NET ISAPI就安排一个新的aspnet_wp.exe来处理工作。aspnet_wp.exe的主要任务是将请求交给一系列称为的HTTP管道的托管对象。如果把ASP.NET ISAPI比做销售商,那aspnet_wp.exe就是生产商,而HTTP管道就是生产的流水线。负责流水线的小组就是HttpRuntime,生产商aspnet_wp.exe会将订单(HTTP请求)交给HttpRuntime小组的工作人员ProcessRequest(HttpWorkerRequest wr)HttpRuntime根据内部的分工,最终由ProcessRequestInternal(HttpWorkerRequest wr)在流水线上进行生产。



相关评论