我们在IIS中配置了一个大型内容管理系统作为主站点。我们还有一些独立的应用程序在IIS 7.5下配置为应用程序。我们遇到的问题是子应用程序从父应用程序继承web.config文件,即使它们是完全独立的应用程序并且在没有配置设置的旁边共享。理想情况下,我们希望阻止子应用程序继承web.config文件。这可能吗?
如果没有,我们想告诉子应用程序不要继承master web.config文件的一部分。我们已经尝试编辑子web.config文件并将指令添加到配置文件中,但这似乎不起作用。
据我所知,我们可以修改父web.config文件以添加指令以有效地限制继承;但是我们对这样做犹豫不决,因为我们不确定这将如何影响CMS。有问题的web.config文件也大约有1000行,我们不确定我们需要做多少改变。当然,我们可以继续使用此解决方案并进行彻底测试,但我宁愿找到一个不需要修改父应用程序的解决方案。
我们还尝试更新子web.config文件以手动删除父web.config的某些元素,并且我们得到了混合结果。我们可以卸载HTTP处理程序和类似的东西,但我们似乎无法卸载任何对App_Code文件夹的引用。
简而言之,是否可以让子应用程序不继承web.config文件的任何部分?如果没有,是否可以覆盖或强制孩子忽略父web.config文件中的设置?
由于
戴夫
答案 0 :(得分:11)
除了使用<clear/>
或覆盖子web.config中的设置外,还可以在父web.config中结合使用inheritInChildApplications设置。
示例:
<location path="." inheritInChildApplications="false">
<system.web>
<!-- ... -->
</system.web>
</location>
您可以围绕整个<system.web>
或仅围绕特定部分包装该位置。
一些链接了解更多信息:
答案 1 :(得分:1)
这是一种解决方法,但我们对polygot应用程序所做的是反转代理在父web.config下无法生存的任何内容。在大多数情况下,比打斗更容易。
现在,这个内联网应用程序听起来可能正在使用Windows身份验证,如果是这样,将无法正常工作,因为您无法反向代理Windows身份验证。
答案 2 :(得分:0)
在部分的开头添加<clear/>
以删除继承的设置。