在 ASP.NET 应用程序中进行特定于应用程序和目录的配置设置

本文介绍如何在 ASP.NET 中创建特定于应用程序和特定于目录的配置设置。

原始产品版本: ASP.NET
原始 KB 编号: 815174

摘要

Web.config 文件位于 ASP.NET 应用程序的根目录中。 Web.config 文件指定特定于应用程序的配置信息。 还可以按目录设置配置设置。 可通过两种方法实现此目的:

  • 将多个 Web.config 文件分发到应用程序中的目录。 在 ASP.NET 应用程序目录中添加一个 Web.config 文件,其中包含替代较高级别 Web.config 文件或系统计算机配置中的设置 (Machine.config) 文件中的设置。

  • 将每个目录或每文件设置直接添加到应用程序 Web.config 文件。 此方法使用单个 Web.config 文件打开每个目录的配置设置。 还可以在 Machine.config 文件中使用此方法在 ASP.NET Web 应用程序上强制配置设置,然后阻止 Web.config 文件替代 Machine.config 设置。

使用 Machine.config 文件中的 location 元素

若要指定应用于 Web 应用程序或目录的设置,可以将 元素添加到<location><configuration>系统 Machine.config 文件的 元素。 将配置设置集中到单个文件中时,此功能非常有用。 在 Web 托管环境中,强制对单个 Web 应用程序进行特定配置设置也很有用。

元素 <location> 包含两个属性, pathallowOverride。 属性 path 定义配置设置涵盖的站点或虚拟目录。 若要指定 元素中的 <location> 设置应用于默认网站,请将 属性 path 设置为 Default Web Site。 若要指定设置应用于默认网站中名为 MyApp 的应用程序,请将 属性 path 设置为 Default Web Site/MyApp

allowOverride当 属性为 false 时,Web 应用程序目录中的Web.config 文件无法替代在 元素中指定的<location>设置。 在必须限制应用程序开发人员配置 Web 应用程序的方式的环境中,这是一个有用的设置。 以下示例演示 Machine.config 文件的一部分。 该文件需要身份验证才能访问默认网站上的 MyApp 应用程序,并且无法由 Web.config 文件中的设置替代。

<configuration>
    <location path="Default Web Site/MyApp" allowOverride="false">
        <system.web>
            <authorization>
                <allow users="?" />
            </authorization>
        </system.web>
    </location>
</configuration>

使用 Web.config 文件中的 location 元素

若要指定应用于特定应用程序或目录的设置,请将 <location> 元素 <configuration> 添加到应用程序的 元素 Web.config 文件。 元素 <location> 通常包含元素 <system.web> 和其他配置元素,就像在 Web.config 文件中使用它们一样。 path元素的 <location> 属性指定位置配置项适用的虚拟目录或文件名。 以下示例演示应用程序 Web.config 文件的一部分,该文件指定论坛虚拟目录的自定义错误消息。

<configuration>
    <location path="forum" >
        <system.web>
            <customErrors mode="RemoteOnly" defaultRedirect="forum-error.aspx">
                <error statusCode="404" redirect="forum-file-not-found.aspx" />
            </customErrors>
        </system.web>
    </location>
</configuration>

References