每个配置文件只允许一个 configSections 元素,如果存在,则必须是根配置元素的第一个子元素
Posted
技术标签:
【中文标题】每个配置文件只允许一个 configSections 元素,如果存在,则必须是根配置元素的第一个子元素【英文标题】:Only one configSections element allowed per config file and if present must be the first child of the root configuration element 【发布时间】:2012-11-17 09:57:57 【问题描述】:我正在开发控制台应用程序,当我运行 .exe 文件时,我收到以下错误:
system.Configuration.ConfigurationErrorsException
:每个配置文件只允许一个<configSections>
元素,如果存在,则必须是根<configuration>
元素的第一个子元素。
这是我的App.config
文件:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<configSections>
<section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- ... -->
但是,如果我删除以下 startup
部分,那么它可以正常工作
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
【问题讨论】:
在德语中,错误消息显示为“Pro Konfigurationsdatei ist nur ein错误消息本身实际上详细说明了正确的修复:
configSections
必须是根元素的第一个子元素*:
*添加了重点
所以只需将configSections
移到顶部:
<configuration>
<configSections>
<section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
【讨论】:
今天我知道我应该阅读整个错误信息。谢谢。 @AtronSeige 我也是:P 我收到了相同的 Windows 服务错误消息,而 app.config 中甚至没有“错误 web.config 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="SQLConnect"
connectionString="Data Source=SAHIL; Initial Catalog=Demo; Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
</connectionStrings>
<configSections>
<sectionnamesectionname="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework,
Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
:
:
:
:
:
:
:
</configuration>
错误是
为了修复错误,我重新排列了元素并修复了错误。
【讨论】:
以上是关于每个配置文件只允许一个 configSections 元素,如果存在,则必须是根配置元素的第一个子元素的主要内容,如果未能解决你的问题,请参考以下文章