Pro Konfigurationsdatei ist nur ein configSections-Element zulässig, und falls vorhanden, muss es das erste untergeordnete Element des Stammkonfigurationselements sein

91

Ich entwickle die Konsolenanwendung und wenn ich die EXE-Datei ausführe, wird folgende Fehlermeldung angezeigt:

system.Configuration.ConfigurationErrorsException: <configSections>Pro Konfigurationsdatei ist nur ein Element zulässig. Wenn vorhanden, muss dies das erste untergeordnete <configuration>Element des Stammelements sein .

Hier ist meine App.configDatei:

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

Wenn ich jedoch den folgenden startupAbschnitt entferne , funktioniert es einwandfrei

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
Mahesh
quelle
1
Auf Deutsch lautet die Fehlermeldung " Pro Konfigurationsdatei ist nur ein <Konfigurationsabschnitte> - Element, das vorhanden ist, muss vorhanden, das erste unter dem Element des Stammes - <Konfiguration> - Elemente sein. " (Nur für den Fall, dass jemand dieses googelt ).
Uwe Keim

Antworten:

223

Die Fehlermeldung selbst beschreibt tatsächlich die korrekte Korrektur:

configSectionsmuss das erste Kind * des Stammelements sein:

*Betonung hinzugefügt

Bewegen Sie sich also einfach configSectionsnach oben:

<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
quelle
54
Heute habe ich gelernt, dass ich die ganze Fehlermeldung lesen soll. Vielen Dank.
Atron Seige
1
@ AtronSeige mich auch: P
Piyey
Ich habe die gleiche Fehlermeldung für einen Windows-Dienst erhalten und die app.config enthält nicht einmal das Tag "<configSections>".
mbx
Bitte poste deine Konfiguration auf Pastebin und verlinke sie hier
Daniel Hilgarth
2
Wie sich herausstellte, war meine Konfiguration in Ordnung, aber die machine.config auf diesem Computer war fehlerhaft. Es enthielt sogar eine SQLExpress / localhost-Verbindungszeichenfolge, obwohl auf diesem Computer nie SQL installiert war.
mbx
2

Die Fehlerdatei 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> 

Der Fehler war

Geben Sie hier die Bildbeschreibung ein

Um den Fehler zu beheben, habe ich die Elemente neu angeordnet und der Fehler wurde behoben.

Geben Sie hier die Bildbeschreibung ein

MAFAIZ
quelle