Tylko jeden element configSections dozwolony na plik konfiguracyjny i jeśli występuje, musi być pierwszym elementem podrzędnym głównego elementu konfiguracji

92

Tworzę aplikację konsolową i po uruchomieniu pliku .exe pojawia się następujący błąd:

system.Configuration.ConfigurationErrorsException: Tylko jeden <configSections>element dozwolony na plik konfiguracyjny i jeśli jest obecny, musi być pierwszym dzieckiem <configuration>elementu głównego .

Oto mój App.configplik:

<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>
    <!-- ... -->

Jeśli jednak usunę następującą startupsekcję, będzie działać dobrze

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
Mahesh
źródło
1
W języku niemieckim komunikat o błędzie brzmi „ Pro Konfigurationsdatei ist nur ein <configSections> -Element zulässig und muss, sofern vorhanden, das erste untergeordnete Element des Stamm- <konfiguracja> -Elements sein. ” (Na wszelki wypadek ktoś go szuka w Google. ).
Uwe Keim

Odpowiedzi:

224

Sam komunikat o błędzie zawiera szczegóły poprawnej poprawki:

configSectionsmusi być pierwszym dzieckiem * elementu głównego:

* podkreślenie dodane

Więc po prostu przenieś configSectionsna górę:

<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>
Daniel Hilgarth
źródło
54
Dziś dowiedziałem się, że powinienem przeczytać cały komunikat o błędzie. Dzięki.
Atron Seige
1
@AtronSeige me too: P
Piyey
Otrzymałem ten sam komunikat o błędzie dla usługi systemu Windows, a plik app.config nie ma nawet tagu „<configSections>”.
mbx
Prześlij swoją konfigurację do wklejania i
połącz
2
Jak się okazało, moja konfiguracja była OK, ale plik machine.config na tym komputerze był uszkodzony. Zawierał nawet ciąg połączenia SQLExpress / localhost, chociaż na tej maszynie nigdy nie był zainstalowany żaden SQL.
mbx
2

Plik błędu 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> 

Błąd był

wprowadź opis obrazu tutaj

Aby naprawić błąd, przestawiłem elementy i błąd został naprawiony.

wprowadź opis obrazu tutaj

MAFAIZ
źródło