ASP.NET的设计目标(3)

2017 年 12 月 7 日3150

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配置系统。

图 2-12 2.4.7 分解的“开放”设计

和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

在图2-13中,.aspx扩展名是高亮显示的。它表明.NET系统目录中的aspnet_isapi.dll负责处理该请求。ASP通过其ISAPI扩展DLL实现了许多功能:

● 它通过Session对象为Web客户端提供了状态管理

● 它通过Application对象允许跨Web应用程序共享数据

● 它与MTS结成了一个整体

● 它提供了基本安全服务以保护ASP文件,使用IIS和Windows中的安全支持来帮助识别用户

陈刚

本文来源:清华大学出版社

责任编辑:王晓易_NE0011

0 0