È consentito un solo elemento configSections per file di configurazione e, se presente, deve essere il primo elemento secondario dell'elemento di configurazione root


92

Sto sviluppando l'applicazione console e quando eseguo il file .exe, ottengo il seguente errore:

system.Configuration.ConfigurationErrorsException: È <configSections>consentito un solo elemento per file di configurazione e, se presente, deve essere il primo <configuration>elemento secondario dell'elemento radice .

Ecco il mio App.configfile:

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

Tuttavia, se rimuovo la startupsezione seguente , funziona correttamente

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>

1
In tedesco, il messaggio di errore è " Pro Konfigurationsdatei ist nur ein <configSections> -Element zulässig und muss, sofern vorhanden, das erste untergeordnete Element des Stamm- <configuration> -Elements sein. " (Per ogni evenienza, qualcuno sta cercando su Google questo ).
Uwe Keim

Risposte:


223

Il messaggio di errore stesso descrive effettivamente la correzione corretta:

configSectionsdeve essere il primo figlio * dell'elemento radice:

*enfasi aggiunta

Quindi sposta semplicemente il configSectionsin alto:

<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
Oggi ho imparato che dovrei leggere l'intero messaggio di errore. Grazie.
Atron Seige

1
@AtronSeige anche me: P
Piyey

Ho ricevuto lo stesso messaggio di errore per un servizio Windows e app.config non contiene nemmeno un tag "<configSections>".
mbx

Inserisci la tua configurazione in pastebin e
collegala

2
Come si è scoperto, la mia configurazione era OK ma il machine.config su quella macchina era rotto. Conteneva anche una stringa di connessione SQLExpress / localhost sebbene su quella macchina non fosse mai stato installato alcun SQL.
mbx

2

Il file Error 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> 

L'errore era

inserisci qui la descrizione dell'immagine

Per correggere l'errore, ho riorganizzato gli elementi e l'errore è stato risolto.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.