Для каждого файла конфигурации разрешен только один элемент configSections, и если он присутствует, он должен быть первым дочерним элементом корневого элемента конфигурации.

94

Я разрабатываю консольное приложение, и когда я запускаю файл .exe, я получаю следующую ошибку:

system.Configuration.ConfigurationErrorsException: В <configSections>конфигурационном файле разрешен только один элемент, и если он присутствует, он должен быть первым дочерним <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> -Element zulässig und muss, sofern vorhanden, das erste untergeordnete Element des Stamm- <configuration> -Elements sein. " (На всякий случай кто-то гуглит этот ).
Уве Кейм

Ответы:

226

В самом сообщении об ошибке подробно описано правильное исправление:

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
Сегодня я узнал, что должен прочитать все сообщение об ошибке. Спасибо.
Атрон Сейдж
1
@AtronSeige, я тоже: P
Piyey
У меня такое же сообщение об ошибке для службы Windows, а в app.config даже нет тега «<configSections>».
mbx
Пожалуйста,
опубликуйте
2
Как оказалось, моя конфигурация была в порядке, но файл machine.config на этой машине был сломан. Он даже содержал строку подключения SQLExpress / localhost, хотя на этом компьютере никогда не устанавливался SQL.
mbx
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> 

Ошибка была

введите описание изображения здесь

Чтобы исправить ошибку, я переставил элементы, и ошибка была исправлена.

введите описание изображения здесь

МАФАИЗ
источник