構成ファイルごとに許可されるconfigSections要素は1つだけで、存在する場合はルート構成要素の最初の子でなければなりません


92

コンソールアプリケーションを開発しています。.exeファイルを実行すると、次のエラーが発生します。

system.Configuration.ConfigurationErrorsException<configSections>構成ファイルごとに許可される要素は1 つだけで、存在する場合はルート<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。」と表示されます(場合によっては、誰かがこれをググる)。
Uwe Keim

回答:


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 2017

設定をペーストビンに投稿して、ここにリンクしてください
ダニエルヒルガース2017

2
結局のところ、私の構成は問題ありませんでしたが、そのマシンのmachine.configが壊れていました。SQLExpress / localhost接続文字列も含まれていましたが、そのマシンにはSQLがインストールされていませんでした。
mbx 2017

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> 

エラーは

ここに画像の説明を入力してください

エラーを修正するために、要素を再配置し、エラーを修正しました。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.