停止从父ASP继承web.config.NET应用程序



我们已经部署了一个ASP。NET网站(应用程序1)。然后在该应用程序下创建另一个ASP。NET应用程序(应用程序2)。但在应用程序2中,我不想从应用程序1继承web.config

如果我尝试在应用程序1的web.config:中执行以下操作

<location path="." inheritInChildApplications="false"> 
    <configSections> 
    <!-- etc -->
    </configSections>
</location>

它报告错误:

配置错误配置节"configSections"不能由于缺少一节而读取申报

如果我尝试这样做:

<remove name = "system.web.extensions" /> 

它仍然报告相同的错误:

如果您可以将子应用程序部署到单独的网站(同一台机器,不同的端口),应用程序请求路由可能会对此有所帮助。

解决方案与本帖类似。首先,安装ARR。然后,在侦听非标准端口的网站上配置您的"子"应用程序。接下来,在"父"应用程序的网站上设置一个重写规则,该规则与"子"程序的原始路径相匹配。让这个规则将请求转发到在新端口上侦听的新创建的网站。

我会发布一个例子,但我希望通过查看上面引用的帖子,可以很容易地了解这将如何工作。

这对我有效。

对于那些无法使位置路径解决方案正常工作的人,您可能忘记关闭位置元素标记(如果您只是在服务器上的文本编辑器中编辑web.config)。这里有一个例子:

<configuration>
  <configSections>
 ...
  </configSections>
  <connectionStrings>
 ...
  </connectionStrings>
  <location path="." inheritInChildApplications="false">
  <system.web>
 ...
  </system.web>
 ...
  </location>
</configuration>

请注意,configSections和connectionStrings不应该在location元素中,这可能是OP尝试失败的原因。

您尝试过以下链接吗:

http://www.kowitz.net/archive/2007/05/16/stopping-asp-net-web-config-inheritance

我可以保证这和我过去一样有效。

不能将整个<configSections>配置元素封装在<location path="." inheritInChildApplications="false">中。ASP不支持此功能。NET(还没有)。

来自文件:

章节信息。InheritInChildApplications属性

InheritInChildApplications属性仅适用于位置特定配置设置。

还有:

获取或设置一个值,该值指示是否在关联的配置部分中指定的被继承由驻留在相关的子目录应用

<configSection>元素是特殊的,并且不是这样的配置设置。它们用于定义配置设置的处理程序。

如果您需要从子应用程序中删除冲突的配置<section>,您可以在具有<remove>元素的子应用程序的web.config文件中执行此操作:

configSections(通用设置模式)的remove元素

最新更新