使用 ASP.NET 配置系统可以配置服务器上的任何 ASP.NET 应用程序,甚至是单独的页面或应用程序子目录。可配置的内容包括有:授权模式,页面缓存,编译器选项,自定义错误,调试和跟选项,以及更多。
下列部分描述了 ASP.NET 配置系统的特征。
提示:ASP.NET 配置系统只对 ASP.NET 资源有效。比如,窗体授权只能限制 ASP.NET 文件的访问,而对没有被映射到 ASP.NET 文件类型(静态文件或 ASP 文件)则不起作用。需要使用 Internet Information Services(IIS)来配置非 ASP.NET 资源。
配置文件
ASP.NET 的配置数据被保存在名为 Web.config 的 XML 文件中。Web.config 文件可以在 ASP.NET 应用程序的多个目录中出现。这些文件允许开发者在应用程序被布署到目标服务器的任何时间段内进行编辑。用于创建或编辑 ASP.NET 配置文件的工具有很多:如普通的文本编辑器,ASP.NET MMC 插件,Web Site Administration Tool,或 ASP.NET 配置 API。
ASP.NET 配置文件为应用程序代码保持分离的配置。为代码保持分离的配置能够简化应用程序的关联设置、应用程序布署后的配置更改、以及配置结构的扩展。
配置文件的层次和继承
作用于目录的 Web.config 文件配置对其子目录同样有效。而子目录中的配置能够覆盖继承自于父目录的配置。可以在 Web.config 文件中指定局部元素的路径以作用于不同的文件或子目录。
ASP.NET 配置层次的根是 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 文件,作用于所有运行在指定 .NET Framework 版本下的 ASP.NET 应用程序。因为每个 ASP.NET 应用程序都会自动继承根 Web.config 文件中的配置,所以开发者需要创建新的 Web.config 文件来覆盖默认配置。
提示:根 Web.config 文件会从 Machine.config 文件中继承到部分基本配置,Machine.config 文件与根 Web.config 文件位于同一目录中。并且部分配置无法通过 Web.config 文件覆盖。
在运行时,ASP.NET 为每个输入请求进行 Web.config 文件的分级计算,并应用唯一的配置集合。这些配置仅在第一次计算之后就由服务器进行缓存。ASP.NET 自动检测配置文件的更改并重新应用于相应的应用程序,而大部分情况下的应用程序会重新得到启动。一旦位于层次结构中的配置文件被更改,层次化配置会被重新自动计算并缓存。除了 processModel
部分之外的内容被更改之后会导致 IIS 服务器的重新启动。
直接编辑配置文件
可以使用纯文本编辑器或 XML 编辑器直接更改配置文件。
配置工具
ASP.NET 配置系统提供了相关的配置工具,这些工具包括了错误检测功能,对配置的更改远比文本编辑器来得更加容易。
ASP.NET MMC 插件
用于 ASP.NET 的 Microsoft Management Console(MMC)插件为本地或远程 Web 服务器操作所有级别的配置提供方便。ASP.NET MMC 插件使用的是 ASP.NET 配置 API,但是它提供一个图形化用户接口(GUI)简化了配置的编辑过程。另外,该工具还为支持 ASP.NET 配置 API 特征,而不论配置是否来自于 Web 应用程序的继承。并且对配置层次中的依存关系进行管理。
提示:要使用 ASP.NET MMC 插件,必须以具有管理员特权的帐号登录到系统。
ASP.NET MMC 插件会显示一个 ASP.NET 制表页并列出虚拟目录的属性列表。
Web Site Administration Tool
Web Site Administration Tool 允许任何具有管理员特权的帐号管理 Web 站点的配置。Web Site Administration Tool 是出于为 Web 站点的配置提供界面友好以及图形化编辑工具的设想而设计的。因为该工具的界面使用基于浏览器的接口,所以也可以通过远程更改 Web 站点的配置,适用于管理已经布署在正式 Web 服务器(如被托管 Web 网站)上的网站。
Web Site Administration Tool 与 ASP.NET MMC 插件有几个区别。具体情况是,ASP.NET MMC 插件是理想的管理级配置工具,因为它提供 Web 服务器上所有层次化配置的访问而不是只针对单个 Web 网站。另外还必须是管理员才可以使用 ASP.NET MMC 插件。而 Web Site Administration Tool 只允许具有管理员特权的网站所有者配置单个网站根目录下的 Web.config 文件。最后,可以使用 ASP.NET MMC 插件远程管理 IIS,而 Web Site Administration Tool 提供的浏览器接口只允许对 6.0 版本以上的 IIS 进行远程配置。
Web Site Administration Tool 包括一组制表符界面对相关配置设定进行分组:
-
安全性 制表符。包含 Web 应用程序资源的保护和管理用户帐号和角色。
-
档案文件 制表符。包含 Web 站点如何收集访问者信息的管理。
-
应用程序 制表符。包含 ASP.NET 应用程序配置元素的管理。
-
提供者 制表符。包含添加,编辑,删除,测试,或指定应用程序提供者的设定。
Web Site Administration Tool 自动安装在 .NET Framework 2.0 中。
命令行工具
.NET Framework 包括一些命令行工具来完成特定的配置操作。比如,Aspnet_regiis.exe 允许开发者为 ASP.NET 应用程序指派相应的 .NET Framework 版本。
ASP.NET 配置 API
ASP.NET 配置系统提供一个完整的用于配置 ASP.NET 应用程序的被托管编程接口,从而不需要直接编辑 XML 配置文件。对 ASP.NET 配置 API 的附加描述如下:
-
为所有配置层次提供一个集成化的视图以简化管理任务。
-
支持布署任务,包括配置内容的创建以及使用同一个脚本配置多台计算机。
-
为建立 ASP.NET 应用程序,控制台应用程序和脚本,基于 Web 的管理工具,以及 MMC 插件的开发者们提供一致的编程接口。
-
防止开发者和管理员进行无效的配置。
-
允许开发者扩展配置结构。开发者可以定义新的配置参数并编写相应的配置段处理器进行处理。
-
为获取当前运行的应用程序的配置信息提供静态方法,而非静态方法则用于获取其他应用程序的配置信息。使用静态方法的应用程序通常运行得更快,但是这类静态方法只能够用于应用程序配置数据的获取。
网站配置的安全性
ASP.NET 配置系统有助于保护配置文件不被未授权用户访问。ASP.NET 会对 IIS 进行配置以拒绝任何浏览器对 Machine.config 或 Web.config 文件的请求。任何浏览器尝试对配置文件的直接请求都将得到服务器回应的 403 号 HTTP 访问错误(禁止访问)。
另外,ASP.NET 应用程序中的配置文件禁止访问其他 ASP.NET 应用程序的配置段,除非以完全信任帐号的身份进行读取。