在 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 文件中的位置元素

若要指定应用于 Web 应用程序或目录的设置,可以将元素添加到 <location> <configuration> system Machine.config 文件的元素。 在单个文件中集中配置设置时,它很有用。 在 Web 托管环境中,它还可用于在单个 Web 应用程序中强制设置特定的配置设置。

元素 <location> 包含两个属性, path 以及 allowOverride. 该 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> 元素添加到 <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>

参考