【问题标题】:Unloading parts of a web.config file from a child application从子应用程序中卸载部分 web.config 文件
【发布时间】:2012-01-22 02:14:32
【问题描述】:

我们有一个大型内容管理系统配置为 IIS 中的主站点。我们还有一些独立的应用程序被配置为 IIS 7.5 下的应用程序。我们遇到的问题是子应用程序从父应用程序继承 web.config 文件,即使它们是完全独立的应用程序并且几乎不共享任何配置设置。理想情况下,我们希望完全阻止子应用程序继承 web.config 文件。这可能吗?

如果不是,我们想告诉子应用不要继承主 web.config 文件的部分内容。我们已经尝试编辑子 web.config 文件并向配置文件添加指令,但这似乎不起作用。

我知道我们可以修改父 web.config 文件以添加指令来有效地限制继承;但是我们对此犹豫不决,因为我们不确定这将如何影响 CMS。有问题的 web.config 文件也有大约 1000 行长,我们不确定需要进行多少更改。当然,我们可以继续使用此解决方案并进行彻底测试,但我宁愿找到一个不需要修改父应用程序的解决方案。

我们还尝试更新子 web.config 文件以手动删除父 web.config 的某些元素,但结果好坏参半。我们可以卸载 HTTP 处理程序和类似的东西,但我们似乎无法卸载对 App_Code 文件夹的任何引用。

简而言之,是否可以让子应用程序不继承 web.config 文件的任何部分?如果没有,是否可以覆盖或以其他方式强制子级忽略父 web.config 文件中的设置?

谢谢

戴夫

【问题讨论】:

  • 您能否提供有关您对 App_Code 文件夹的引用的更多信息?它在哪个部分?最好在问题中包含该 sn-p 以便我们查看。

标签: .net inheritance web-config


【解决方案1】:

除了使用<clear/> 或覆盖子web.config 中的设置,您还可以在父web.config 中结合使用inheritInChildApplications 设置。

例子:

<location path="." inheritInChildApplications="false"> 
  <system.web>     
    <!-- ... -->
  </system.web>
</location>

您可以将位置环绕整个 &lt;system.web&gt; 或仅环绕特定部分。

更多信息的链接:

【讨论】:

    【解决方案2】:

    这是一种解决方法,但我们为 polygot 应用程序所做的是反向代理任何不能存在于父 web.config 下的东西。在大多数情况下,这比与之抗争要容易得多。

    现在,这个 Intranet 应用听起来可能正在使用 Windows 身份验证,如果是这样,那将无法正常工作,因为您无法反向代理 Windows 身份验证。

    【讨论】:

      【解决方案3】:

      在节的开头添加&lt;clear/&gt; 以消除继承的设置。

      【讨论】:

      • 部分信息已从我的原始帖子中删除。它应该说“我们已经尝试编辑子 web.config 文件并将&lt;clear/&gt; 指令添加到配置文件中,但这似乎不起作用。”和“我知道我们可以修改父 web.config 文件以添加 &lt;location&gt; 指令以有效限制继承;但是......”
      • 你在哪里添加&lt;clear/&gt;? AFAIK 它需要在您要清除的每个部分下。把它放在&lt;appSettings&gt;&lt;httpModules&gt; 下会起作用;把它放在&lt;system.web&gt;&lt;configuration&gt;不是
      • 我尝试了这两种方法。 &lt;clear/&gt; 似乎适用于卸载诸如 HTTP 处理程序之类的东西,但我们对父 web.config 中的 App_Code 文件夹有这个讨厌的调用,而 &lt;clear/&gt; 不适用于该部分。
      • 我相信&lt;clear/&gt;&lt;location&gt;&lt;remove&gt; 是唯一可用于解决继承问题的指令,因此&lt;location&gt; 是您唯一的选择,除非您将站点移出子目录并运行它作为一个单独的应用程序。您可以使用 ISAPI 过滤器伪造子目录。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      相关资源
      最近更新 更多