ASP.NET 配置概述

更新:2007 年 11 月

使用 ASP.NET 配置系统的功能,可以配置整个服务器上的所有 ASP.NET 应用程序、单个 ASP.NET 应用程序、各个页面或应用程序子目录。可以配置各种功能,如身份验证模式、页缓存、编译器选项、自定义错误、调试和跟踪选项等等。

以下各节描述了 ASP.NET 配置系统的功能。

有关配置 .NET Framework 客户端应用程序的信息,请参见配置应用程序

ms178683.alert_note(zh-cn,VS.90).gif说明:

ASP.NET 配置系统的功能仅适用于 ASP.NET 资源。例如,Forms 身份验证仅限制对 ASP.NET 文件的访问,而不限制对静态文件或 ASP(传统型)文件的访问,除非这些资源映射到 ASP.NET 文件扩展名。要配置非 ASP.NET 资源,应使用 Internet 信息服务 (IIS) 的配置功能。有关信息,请参见 Working with the IIS Metabase(使用 IIS 元数据库)IIS Metabase Property Reference(IIS 元数据库属性参考)

配置文件

ASP.NET 配置数据存储在 XML 文本文件中,每一个 XML 文本文件都命名为 Web.config。Web.config 文件可以出现在 ASP.NET 应用程序的多个目录中。使用这些文件,可以在将应用程序部署到服务器上之前、期间或之后方便地编辑配置数据。可以通过使用标准的文本编辑器、ASP.NET MMC 管理单元、网站管理工具或 ASP.NET 配置 API 来创建和编辑 ASP.NET 配置文件。

ASP.NET 配置文件将应用程序配置设置与应用程序代码分开。通过将配置数据与代码分开,可以方便地将设置与应用程序关联,在部署应用程序之后根据需要更改设置,以及扩展配置架构。

有关如何对 ASP.NET 配置文件中的数据进行组织的更多信息,请参见 ASP.NET 配置文件ASP.NET 配置设置中描述了可用的配置设置。

配置文件层次结构和继承

每个 Web.config 文件都将配置设置应用于它所在的目录以及它下面的所有子目录。可以选择用子目录中的设置重写或修改父目录中指定的设置。通过在 location 元素中指定一个路径,可以选择将 Web.config 文件中的配置设置应用于个别文件或子目录。

ASP.NET 配置层次结构的根目录为 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 文件,其中包括应用于所有运行特定版本的 .NET Framework 的 ASP.NET 应用程序的设置。由于每个 ASP.NET 应用程序都从根 Web.config 文件那里继承默认配置设置,因此只需为重写默认设置的设置创建 Web.config 文件。

ms178683.alert_note(zh-cn,VS.90).gif说明:

根 Web.config 文件从 Machine.config 文件那里继承一些基本配置设置,这两个文件位于同一个目录中。其中的某些设置不能在 Web.config 文件中被重写。有关更多信息,请参见 ASP.NET 配置文件层次结构和继承

运行时,ASP.NET 使用 Web.config 文件按层次结构为传入的每个 URL 请求计算唯一的配置设置集合。这些设置只计算一次,随后将缓存在服务器上。ASP.NET 检测对配置文件进行的任何更改,然后自动将这些更改应用于受影响的应用程序,而且大多数情况下会重新启动应用程序。只要更改层次结构中的配置文件,就会自动计算并再次缓存分层配置设置。除非 processModel 节已更改,否则 IIS 服务器不必重新启动,所做的更改即会生效。

有关 ASP.NET 配置层次结构的工作原理的更多信息,请参见 ASP.NET 配置文件层次结构和继承ASP.NET 配置方案

直接编辑配置文件

可以使用文本编辑器或 XML 编辑器来直接编辑配置文件。有关正确的语法,请参见 ASP.NET 配置设置常规配置设置 (ASP.NET) 中有关配置节的参考主题。有关更多信息,请参见编辑 ASP.NET 配置文件

ASP.NET 3.5 Web.config 文件中的其他配置元素

基于 .NET Framework 3.5 版本的 ASP.NET 应用程序中的 Web.config 文件包含未见于早期版本 Web.config 文件中的配置元素。打开现有网站并升级该网站以符合 .NET Framework 3.5 版本时,也会创建这个扩展的 Web.config 文件。在这种情况下,Visual Studio 更新应用程序的 Web.config 文件以包括其他配置元素。

下表显示新的配置元素以及与 .NET Framework 早期版本中的配置元素的不同。

配置元素

3.5 版本中的更改

system.codedom

(新节)指定 .NET Framework 代码文档对象模型 (CodeDOM) 在运行时应该如何编译源代码。

configSections

(新节)定义 system.web.extensions 节,该节供 ASP.NET AJAX 用来定义如何从客户端脚本调用 Web 服务。有关更多信息,请参见 ASP.NET AJAX 中的 Web 服务

assemblies

(compilation 元素中的新节)指定在编译 ASP.NET 页时引用的程序集的集合。该节包含 ASP.NET 3.5 版本中新增加的程序集。

namespaces

(更新的节)该节指定默认情况下导入的命名空间。添加了 Linq、 Linq 和 Generic 命名空间。

controls

(更新的节)该节注册包含控件的程序集,并提供前缀以引用控件,这与 ASP.NET 网页指令页指令注册单独页中的控件类似。默认情况下该节注册 Extensions 程序集中的控件。这些控件包括 ListView 控件和与 AJAX 相关的控件。

system.webServer

该节替换在 httpHandlers 和 httpModules 节中添加的与 AJAX 相关的 HTTP 处理程序和模块。该节使 IIS 7.0 在集成模式下运行时可使用这些处理程序和模块。

assemblyBinding

(更新的节)该节指示运行时使用作为 ASP.NET 3.5 版本一部分的 ASP.NET AJAX 框架,而不使用任何早期版本的 ASP.NET AJAX 框架。

配置工具

使用 ASP.NET 配置系统所提供的工具来配置应用程序比使用文本编辑器简单,因为这些工具包括错误检测功能。

ASP.NET MMC 管理单元

用于 ASP.NET 的 Microsoft 管理控制台 (MMC) 管理单元提供一种在本地或远程 Web 服务器上的所有级别操作 ASP.NET 配置设置的方便途径。ASP.NET MMC 管理单元使用 ASP.NET 配置 API,但是它通过提供一个图形用户界面 (GUI) 来简化配置设置的编辑过程。另外,该工具还支持多个 ASP.NET 配置 API 功能,这些功能控制 Web 应用程序是否可以继承设置,并管理配置层次结构各级别之间的依赖性。

ms178683.alert_note(zh-cn,VS.90).gif说明:

若要使用 ASP.NET MMC 管理单元,必须使用具有管理权限的帐户登录到计算机。

ASP.NET MMC 管理单元在虚拟目录的属性页上显示为**“ASP.NET”**选项卡。

有关更多信息,请参见 ASP.NET 的 MMC 管理单元

网站管理工具

对网站具有管理权限的任何人都可以使用网站管理工具来管理该网站的配置设置。网站管理工具旨在为各个网站中最常用的配置设置提供一个用户友好的图形编辑工具。由于网站管理工具使用基于浏览器的界面,因此它允许您远程更改网站设置,这对于管理已经部署到成品 Web 服务器的站点(如承载的网站)非常有用。

网站管理工具与 ASP.NET MMC 管理单元在若干方面存在不同。例如,ASP.NET MMC 管理单元最适于管理员级别的配置,因为它提供对 Web 服务器上的整个配置文件层次结构的访问,而不是提供对单个网站的配置设置的访问。此外,您还必须是管理员才能使用 ASP.NET MMC 管理单元,而网站管理工具只允许各个网站所有者在他们具有管理权限的站点的根目录中配置 Web.config 文件。最后,您不能使用 ASP.NET MMC 管理单元来远程管理 IIS,但是,网站管理工具的浏览器界面允许远程配置 IIS 6.0 和更高版本的 IIS。

网站管理工具包括一个选项卡式界面,该界面在下列选项卡上对相关的配置设置进行分组:

  • **“安全”**选项卡,其中包含有助于保护 Web 应用程序资源并管理用户帐户和角色的设置。

  • **“配置文件”**选项卡,其中包含用来管理网站如何收集访问者信息的设置。

  • **“应用程序”**选项卡,其中包含用来管理影响 ASP.NET 应用程序的配置元素的设置。

  • **“提供程序”**选项卡,其中包含用来添加、编辑、删除、测试或分配应用程序提供程序的设置。

网站管理工具是随 .NET Framework 2.0 及更高版本自动安装的。有关该工具如何工作的信息,请参见 ASP.NET 网站管理工具

命令行工具

.NET Framework 包括几个执行特定配置操作的命令行工具。例如,使用 Aspnet_regiis.exe 工具,可以指定将哪个版本的 .NET Framework 应用于 ASP.NET 应用程序。有关更多信息,请参见 .NET Framework 工具

ASP.NET 配置 API

ASP.NET 配置系统提供一个完整的托管接口,使用该接口,可以通过编程方式配置 ASP.NET 应用程序,而不必直接编辑 XML 配置文件。另外,ASP.NET 配置 API 还执行下列任务:

  • 通过为配置层次结构中所有级别的数据提供一个集成视图来简化管理任务。

  • 支持部署任务,包括创建配置和用一个脚本配置多台计算机。

  • 为构建 ASP.NET 应用程序、控制台应用程序和脚本、基于 Web 的管理工具和 MMC 管理单元的开发人员提供单一的编程接口。

  • 防止开发人员和管理员进行无效的配置设置。

  • 允许您扩展配置架构。您可以定义新配置参数并编写配置节处理程序以对它们进行处理。

  • 提供从当前正在运行的应用程序获取配置信息的静态方法,以及从单独的应用程序获取配置信息的非静态方法。使用静态方法可以提高应用程序的运行速度,但是这些方法只能从您要获取其配置数据的应用程序内部使用。

有关更多信息,请参见 ASP.NET 配置 API

配置安全性

ASP.NET 配置系统有助于防止未经授权的用户访问配置文件。ASP.NET 将 IIS 配置为拒绝任何浏览器访问 Machine.config 或 Web.config 文件。对于试图直接请求配置文件的任何浏览器,都返回 HTTP 访问错误 403(禁止)。

另外,将禁止一个 ASP.NET 应用程序中的配置文件访问其他 ASP.NET 应用程序中的配置设置,除非您的配置应用程序在完全信任模式下以对其他应用程序中的配置文件具有读取权限的帐户运行。

有关更多信息,请参见保证 ASP.NET 配置的安全使用受保护的配置加密配置信息

请参见

任务

演练:使用 MMC 在 IIS 6.0 中配置 ASP.NET 应用程序

演练:在 IIS 7.0 中配置 ASP.NET 应用程序

概念

ASP.NET 配置文件层次结构和继承

保证 ASP.NET 配置的安全

其他资源

ASP.NET 配置 API

ASP.NET 配置文件

ASP.NET 的 MMC 管理单元

ASP.NET 网站管理工具

ASP.NET 配置设置

常规配置设置 (ASP.NET)

使用受保护的配置加密配置信息

ASP.NET 和 IIS 配置