【问题标题】:What configuration is not used in a secondary web.config file for an ASP.NET web application?ASP.NET Web 应用程序的辅助 web.config 文件中没有使用哪些配置?
【发布时间】:2011-09-12 18:35:13
【问题描述】:

我正在开发的 ASP.NET Web 应用程序正在使用多个 web.config 文件。一个在 web 根文件夹中,然后我们有另一个名为“admin”的项目 (*.csproj),它位于包含其自己的 web.config 文件的应用程序的 web 根目录下的嵌套文件夹中。 辅助 web.config 文件中使用(或未使用)什么 ASP.NET 配置(或其他配置)?我正在升级 Telerik 的 Rad Controls 并添加一些新功能。但是,这些控件都不适用于主 Web 应用程序。它们都适用于管理项目页面。因此,如果我能提供帮助,我不想在 main/primary web.config 文件中添加一些内容。如果您在使用辅助 web.config 时也可以分享任何陷阱(或限制),请这样做!

【问题讨论】:

    标签: asp.net iis configuration web web-config


    【解决方案1】:

    web.config 文件本质上是通过层次布局合并的,就像所有配置文件一样。考虑以下几点:

    machine.config (1)
        -> web.config (2)
             -> applicationHost.config (3)
                  -> web.config (4)
                      -> web.config (5) 
    

    .NET 中的配置机制允许在配置层次结构的各个阶段覆盖(或锁定)配置元素,其中:

    1. machine.config 是机器级别的配置 - 此处的配置适用于所有 .NET 应用程序。
    2. root web.config 是机器级别的 Web 配置 - 大多数 ASP.NET 模块/处理程序都在其中配置,并且配置应用于所有 ASP.NET 应用程序。
    3. applicationHost.config 是 IIS7 根 web 配置 - 应用程序池在集成模式下运行时使用模块/处理程序配置项。
    4. application web.config 是应用程序级别的 Web 配置。此处的配置应用于应用程序和所有子文件夹/虚拟文件夹。
    5. 虚拟文件夹web.config 是虚拟文件夹级别的Web 配置。此处的配置应用于当前虚拟文件夹和所有子文件夹/虚拟文件夹。

    如果您在 IIS applicationHost.config 文件不会用作合并配置的一部分。

    .NET 配置框架将在层次结构中合并配置,在必要时遵循覆盖和锁定配置元素。

    在您的情况下,我想您需要在 IIS 应用程序的虚拟文件夹级别应用配置。

    【讨论】:

      【解决方案2】:

      使用了两个 Web.config。根文件夹中的 Web.config 文件会影响它下面的所有内容;根文件夹子目录中的 Web.config 也会影响它下面的所有内容。如果两个 Web.config 文件之间存在任何冲突,应用程序可能会抛出异常(例如,如果您在两个 Web.config 文件中添加具有相同值的应用程序键)。

      如果您的 Telerik 控件仅用于位于子目录中的项目,那么您应该将更改添加到该子目录中的 Web.config 文件,而不是根目录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2011-09-27
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        相关资源
        最近更新 更多