ASP.NET运行时模型的源码解析.doc
文本预览下载声明
ASP.NET运行时模型的源码解析
摘要:ASP.NET是微软公司推出的基于DotNet平台的网络开发技术,对B/S模式应用的开发提供了强大的支持,该文从源代码级别进入ASP.NET底层,分析ASP.NET运行时模型,揭开ASP.NET应用程序运行的幕后细节。
关键词:ASP.NET;DotNet平台;网络开发;B/S模式应用;运行时模型
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)33-1415-04
SourceCode Analyzing for ASP.NET Runtime Model
ZHANG Jia-qing
(Fujian Institude of Economics Management, Fuzhou 350002, China)
Abstract: Based on DotNet platform, Microsoft Proposed the network developing technology called ASP.NET which provides strong support to the development of B/S pattern application programs. This paper enters into the bottom of ASP.NET from the level of source code so as to analyze the runtime model of ASP.NET, so that running details behind the curtain of ASP.NET application programs are uncovered.
Key words: ASP.NET; DotNet platform; network developing; B/S pattern application; runtime model
1 引言
ASP.NET运行时模型指的是ASP.NET 框架在接收到客户端请求,到获取合适的HttpHandler接管请求之间,以及从HttpHandlers生成处理结果到发送处理结果给客户端之间,ASP.NET 框架所完成的一系列工作和处理逻辑[1]。本文将通过源代码级别的分析,深入讨论ASP.NET 2.0运行时模型,解析ASP.NET应用程序运行时模型的工作原理。
2 ISAPI接口标准与IIS服务器的可扩展性
IIS服务器是部署ASP.NET应用的标准Web服务器,由于IIS服务器在设计时引入了开放的ISAPI接口标准,具备极高的可扩展性,在核心组件不变的情况下可灵活支持不同类型不同版本的应用,例如IIS 5.1版能够同时支持ASP.NET 1.0、1.1、2.0,甚至可以支持部署基于DotNetFramework 3.5的ASP.NET应用程序。ISAPI的全称是:Internet Server Application Programming Interface,即Internet服务器应用编程接口,它为开发人员提供了强大的可编程能力,只要按照标准接口开发不同类型Web应用程序的ISAPI扩展程序,就能实现对IIS功能上的扩展,从而使IIS可以处理不同类型的客户端请求,例如让IIS处理Perl或PHP应用程序[2]。
IIS管理器提供了应用程序配置功能,可以对不同的客户端请求配置不同的ISAPI扩展程序。ISAPI扩展程序通常以DLL的形式存在,可以被IIS加载并调用。在ASP.NET2.0下,对应于.aspx的ASP.NET应用程序,其ISAPI扩展程序默认情况下位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\目录下,以aspnet_isapi.dll(下文简称aspnet_isapi)文件的形式存在[3]。
有了ISAPI扩展,IIS服务器就可以根据客户端请求的资源扩展名,来决定应由哪个ISAPI扩展来处理客户端请求,然后就可以将请求转发给合适的ISAPI扩展。例如当访问资源的扩展名为.aspx、.ascx、.ashx 和 .asmx时,IIS服务器会自动将请求转发给缺省情况下位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\目录下aspnet_isapi.dll进行处理[4],这个动态库就是一个ISAPI扩展程序,负责处理ASP.NET应用程序的请求。
3 ASP.NET的后台辅助进程aspnet_wp.exe
实际上客户发起的请求最终要由aspnet_isapi传递
显示全部