Для каждого файла конфигурации разрешен только один элемент configSections, и, если он присутствует, он должен быть первым дочерним элементом корневого элемента конфигурации
Я разрабатываю консольное приложение и при запуске файла .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
Само сообщение об ошибке содержит подробное описание правильного исправления:
configSections
должен быть первым потомком * корневого элемента:
*emphasis added
Так что просто переместите 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>
Ответ 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>
Ошибка была
![введите описание изображения здесь]()
Чтобы исправить ошибку, я перестроил элементы и исправлена ошибка.
![введите описание изображения здесь]()
Ответ 3
Я знаю, что это должен быть первый дочерний элемент, и изменение файла конфигурации заставляет проблему уйти. Тем не менее, файл конфигурации автоматически создается, поэтому каждый раз, когда это происходит, ошибка возвращается, потому что она генерируется некорректно...