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>

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>

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.