每个配置文件只允许一个configSections元素,并且如果存在,则必须是根配置元素的第一个子元素


91

我正在开发控制台应用程序,当我运行.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>

1
在德语中,错误消息显示为“ Pro Konfigurationsdatei ist nur ein <configSections> -Elementzulässigund muss,sofern vorhanden,das erste untergeordnete Element des Stamm- <configuration> -Elements sein。 ”(以防万一,有人正在使用此功能)。
乌威·基姆

Answers:


223

错误消息本身实际上详细说明了正确的修复程序:

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>

54
今天,我了解到我应该阅读整个错误消息。谢谢。
Atron Seige 2014年

1
@AtronSeige我也:P
Piyey

对于Windows服务,我得到了相同的错误消息,而app.config中甚至没有“ <configSections>”标记。
mbx

请发布您的配置到pastebin并将其链接到此处
Daniel Hilgarth

2
事实证明,我的配置还可以,但是那台机器上的machine.config已损坏。它甚至包含一个SQLExpress / localhost连接字符串,尽管该计算机上从未安装过SQL。
mbx

2

错误的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> 

错误是

在此处输入图片说明

为了解决错误,我重新排列了元素,并修复了错误。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.