ASP.NET的设计目标(3)
2.4.6 更简单、更灵活的配置
ASP.NET中基于XML配置模型使应用程序的部署变得容易多了。配置和应用程序都存储在文本文件中,因此部署不存在问题。而且,ASP.NET提供了一个强大且灵活的配置系统,很容易用在自己的ASP.NET页面和组件中。
ASP.NET中的配置文件是分层次的—— 在一个目录中定义的设置可由某个子目录中定义的设置覆盖掉。而所有ASP.NET应用程序(机器级)的基本设置定义在位于ASP.NET系统目录的machine.config文件中。该文件定义了适用于大多数应用程序的全局配置和映射,它包括以下配置:
● Web请求超时之前的有效时间
● 负责编译和处理特定扩展名的文件的.NET类
● ASP.NET自动循环其处理器进程的间隔时间
● 默认情况下应使用的安全配置
一个简单的XML配置文件如下所示:
< configuration >
<!-- store the database connection info here -->
< appSettings >
<add key ="DSN"
value ="server = localhost; uid= sa; pwd =; database = Northwind" />
</appSettings>
</configuration>
要访问和使用此配置文件,可以使用VB.NET编写如下简单的ASP.NET页面:
<%@Page Language="VB" %>
<h3>Simple Configuration Example</h3>
<%
Response.Write( "The DSN is " & ConfigurationSettings.AppSettings("DSN") )
%>
或者使用C#来编写该页面:
<%@Page Language="C#" %>
<h3>Simple Configuration Example1</h3>
<%
Response.Write( "The DSN is " + ConfigurationSettings.AppSettings["DSN "] );
%>
如果运行其中任何一个网页,会看到页面上显示了DSN,如图2-12所示。
一旦ASP.NET加载了配置文件,这些文件将被高速缓存,以便快速访问,因此性能很好。如果这些文件发生了变化,ASP.NET会自动重新加载它们,所以更新配置并不需要重新启动站点。第13章将详细介绍ASP.NET配置系统。
、
和ASP一样,ASP.NET会作为Internet Server Application Programming Interface (ISAPI,Internet 服务器应用程序编程接口)的扩展DLL而被部分实现。ISAPI是一个鲜为人知的C API,它定义了一个标准以便使DLL(不是EXE,与CGI一样)可处理Web请求。ISAPI的优点在于DLL的效率要高很多,因为对每个Web请求来说,创建和破坏可执行文件的代价非常高。
IIS使所请求的URI的扩展名与某个DLL相匹配,可将ISAPI扩展DLL映射到Web请求。这些映射是使用Application Configuration对话框来定义的,如图2-13所示。要显示这个对话框,可先打开Web站点的关联菜单或虚拟目录,接着单击Home Directory或Virtual Directory选项卡上的configuration按钮。要查看或改变ISAPI扩展的路径,以使用特定的文件类型,可选择该路径,单击Edit按钮。
在图2-13中,.aspx扩展名是高亮显示的。它表明.NET系统目录中的aspnet_isapi.dll负责处理该请求。ASP通过其ISAPI扩展DLL实现了许多功能:
● 它通过Session对象为Web客户端提供了状态管理
● 它通过Application对象允许跨Web应用程序共享数据
● 它与MTS结成了一个整体
● 它提供了基本安全服务以保护ASP文件,使用IIS和Windows中的安全支持来帮助识别用户
本文来源:清华大学出版社
责任编辑:王晓易_NE0011