你根本无法使用<location path="." inheritInChildApplications="false">
<location path="." inheritInChildApplications="false">
在你的web.config的某些部分,以告诉它忽略某些部分的继承(如果你尝试把它的部分,你会得到错误,如“inheritInChildApplications属性未声明”等第四其中,它不支持)。
例如之前或里面,你不能用它<configSections>
例如,你可以包装你<system.web>
中的位置标签标记,但我需要停止的任何继承在<configSections>
我不明白的方式来做到这一点。
我的子应用程序继承了一些,我的父应用程序的Web配置在IIS 7中的树相同的配置设置。 我看没有办法把一个<clear/>
无论是在configSecion标签,因为它是一个无效的标签,如果你尝试添加它。
你怎么知道它忽略节?
这同一个问题被问上多次SO以及许多其他论坛和答案是或多或少相同,不,你不能使用位置/透明/移除configsection。
微软甚至其线程答复如下。
发布Microsoft在2009年7月23日在5:40 PM
<clear /> and <remove />
从来没有为configSections和因难以sectionGroups实施涉案试图合并相同的部分,处理程序和部分群体的不同的定义。
我们考虑增加此类功能的VS 2010的发布,但我们决定不这样做有两个原因。
第一个是将额外的复杂性带来,在很大程度上是因为节处理和部分基团被用来引导配置系统。 其结果是,允许在自举配置系统的中间合并语义是解决一个非平凡的问题。
第二个原因是,通常节处理和部分组定义在两个不同的地方是由-一组初始注册的向上在根配置文件,然后添加剂设置在应用程序级别的web.config的注册。 这并不意味着如果开发者希望修改处理程序的定义是无效的场景 - 它只是一个可能性低的情况。 感谢您抽出宝贵的时间,虽然通过连接提交您的建议!
看看这个SO线程,简单的状态避免使用有冲突的部分群体。
然而,Nairman建议如下,
我不知道,你可以在一个子文件夹不同的定义相同的部分; 你能有这样的子文件夹中的独立虚拟应用程序,在这种情况下它不会继承任何的父项的设置; 在这种情况下,它也将执行在自己的应用程序池; 如果你没有是InProc的依赖,这是一个选项,以及
如何防止为“configSections” web.config文件继承?
信用为这本StackOverflow的答案: “项已经添加” -两个单独的应用程序池
这里包括,所以我没有得到在抱怨...
编辑C:\ WINDOWS \ SYSTEM32 \ INETSRV \设置\的applicationHost.config添加
enableConfigurationOverride="false"
对于每一个应用程序池不应该从父继承web.config设置的。 这体现了自己对我来说,如下所示:
有重复的“System.Web.Extensions程序/脚本/ scriptResourceHandler”定义的部分
如果你想运行的应用程序.NET4(即使是作为单独的应用程序和池)一.NET2父应用程序下,那么这似乎是唯一可行的方案。
作为的applicationHost.config包括该属性的示例应用程序池条目:
<add name="MyApplicationPool" autoStart="true" managedRuntimeVersion="v4.0" enableConfigurationOverride="false">
<processModel identityType="ApplicationPoolIdentity" />
</add>
你可以做的是使该文件夹的应用程序,这样做就可以了反向代理(使用IIS 7的URL重写模块)到一个内部网站,它应该保持CONFIGS完全分开。
例如,一种我们的用于代理重定向是:匹配使用通配符*重写URL图案http://127.0.0.1:8080/ {R:1}
一个可怕的想法,说实话(我讨厌做事情的方法脏),你应该能够告诉IIS你想对孩子应用程序的配置一个清白。