我在我的父网络应用程序配置文件中有以下内容
<configuration>
<configSections>
<sectionGroup name="testmodule">
<section name="testmodule" type="RewriteModule.RewriteModuleSectionHandler, RewriteModule"/>
</sectionGroup>
</configSections>
</configuration>
我想阻止子子文件夹继承此配置部分应放在哪里
<location path="." inheritInChildApplications="false">
,因为配置节应该是配置文件的第一个子元素
答案 0 :(得分:10)
在SO上已经回答了几次,但我认为不正确。
文档很清楚(1)(2):
以下示例显示了如何使用 配置文件中的此属性 指定定义的设置 在根的location元素中 不应继承网站的内容 通过子申请:
InheritInChildApplications 财产仅适用于 特定于位置的配置 设置。
要回答你的问题,这应该足够了:
<configuration>
...
<sectionGroup name="testmodule">
<section name="testmodule" type="RewriteModule.RewriteModuleSectionHandler, RewriteModule"/>
</sectionGroup>
...
<location path="." inheritInChildApplications="false">
<testModule>
....
</testModule>
</location>
答案 1 :(得分:6)
目前似乎没有解决方案,应该避免在web.config文件中使用冲突的部分组。
答案 2 :(得分:1)
如果在冲突的子节中使用不同的名称,它将不会与父节点冲突,您可以使用不同的名称引用它们各自的web.config文件中的两个节。
它并不完美,但它是一个成功使用的工作....
答案 3 :(得分:0)
我们在其中一个应用上遇到有关重复配置指令的错误。 经过调查后,它看起来像是this issue。
简而言之,我们的根网站是ASP.NET 3.5(添加了特定库的2.0),我们有一个ASP.NET 4.0的子应用程序。
web.config继承导致ASP.NET 4.0子应用程序继承父ASP.NET 3.5应用程序的web.config文件。
但是,ASP.NET 4.0应用程序的全局(或“根”)web.config,它位于C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config和C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config(取决于你的位数),已包含这些配置部分。
ASP.NET 4.0应用程序然后尝试将根ASP.NET 4.0 web.config和父web.config(用于ASP.NET 3.5应用程序的那个)合并在一起,并在节点中运行重复项。
我能找到的唯一解决方案是从父web.config中删除配置部分,然后
答案 4 :(得分:0)
我的情况与您的情况相同,因为我的根应用程序正在使用.net 2.0的AppPool,而子AppPool是.Net 4.0。我使用"Entry has already been added" - Two Separate App Pools中的建议,通过将两个AppPools设置为enableConfigurationOverride =&#34; false&#34;它就像一个魅力。