如何防止“configSections”的web.config文件inheritance?
我在我的父Web应用程序配置文件中有以下内容
我想阻止子子文件夹inheritance此配置部分,我应该在哪里放置
,因为配置节应该是配置文件的第一个子元素
在SO上已经回答了几次,但在我看来这是错误的。
文档很清楚(1)(2):
以下示例说明如何在配置文件中使用此属性,以指定子应用程序不应inheritance在网站根目录的location元素中定义的设置:
InheritInChildApplications属性仅适用于特定于位置的配置设置。
要回答你的问题,这应该足够了:
... ... ....
目前似乎没有解决方案,应避免在web.config文件中使用冲突的节组。
如果在冲突的子节中使用不同的名称,它将不会与父节点冲突,您可以使用不同的名称引用它们各自的web.config文件中的两个节。
它不完美,但它是一个成功使用的工作….
我们在其中一个应用程序上遇到有关重复配置指令的错误。 经过调查,它看起来像是因为这个问题 。
简而言之,我们的根网站是ASP.NET 3.5(添加了特定库的2.0),我们有一个ASP.NET 4.0的子应用程序。
web.configinheritance导致ASP.NET 4.0子应用程序inheritance父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中删除配置节,然后再删除
- 确定您的根应用程序中不需要它们,或者
- 将父应用程序升级到ASP.NET 4.0(以便它可以访问根web.config的configSections)
我的情况与你的情况相同,因为我的根应用程序正在使用.net 2.0的AppPool,而子AppPool是.Net 4.0。 我使用“条目已添加”中的建议解决了- 两个单独的应用程序池 ,通过将两个AppPools设置为enableConfigurationOverride =“false”,它就像一个魅力。
- 将Eval与ASP.NET中的ImageURL绑定
- 页面生命周期 – 使用FindControl引用在页面加载期间以编程方式创建的控件
- C#asp.net中WebForm中Winform的Textbox.KeyDown的备用事件是什么?
- 如何在ScriptManager中更改已注册脚本的顺序
- FormsAuthentication.Decrypt始终在其中一个Web服务器中返回null
- 撤消ASP.NET Identity 2.0中UserTokenProvider生成的令牌
- 如何在asp.net C#4.0中调用异步方法?
- 使用asp.net和状态服务器在两个网站之间共享会话
- 我什么时候在asp.net中使用委托?