Не удалось инициализировать систему конфигурации

Я новичок в Visual Studio. В настоящее время я создаю форму для входа.

У меня есть этот код.

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (OdbcConnection connect = new OdbcConnection(connectionString))
    {
        connect.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT username, password FROM receptionist", connect);
        OdbcDataReader reader = cmd.ExecuteReader();

        if (username_login.Text == username && password_login.Text == password)
        {
            this.Hide();
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
        else 
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        connect.Close();
    }
}
catch (OdbcException ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

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

Пожалуйста, помогите.

Ответ 1

Убедитесь, что ваш файл конфигурации (web.config if web или app.config, если окна) в вашем проекте начинаются с:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                      type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="YourProjectName.Properties.Settings" 
                     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                     requirePermission="false" />

        </sectionGroup>
    </configSections>
</configuration>

Обратите внимание, что внутри элемента configuration первый дочерний элемент должен быть элементом configSections.

В свойстве name в элементе section убедитесь, что вы заменили YourProjectName на свое фактическое название проекта.

Случилось со мной, что я создал веб-сервис в проекте библиотеки классов, затем я скопировал (переписал) файл конфигурации (чтобы привести конфигурацию конечных точек) в мое приложение Windows, и у меня возникла такая же проблема. Я случайно удалил configSections.

это сработало для меня, надеюсь, что это поможет

Ответ 2

Удалите старые файлы конфигурации из c:\Users\username\AppData\Local\appname и c:\Users\username\AppData\Roaming\appname, а затем попробуйте для перезапуска приложения.

Ответ 3

Иногда возникает ошибка, потому что окна создают дубликат в

C:\Users\App Data\Local\ "You App Name"...

Просто удалите эту папку и выполните ее. попробуйте.

Ответ 4

Если вы добавили свои собственные разделы конфигурации в свой App.Config, убедитесь, что вы определили раздел в элементе <configSections>. Я добавил свой XML-конфигуратор, но забыл объявить раздел конфигурации вверху, что вызвало для меня исключение "Система конфигурации не удалось инициализировать".

Ответ 5

У меня была такая же проблема с классом MSTest: Марлон Греч в своей статье говорит: "Элемент должен быть определен как первый элемент в App.config."

Итак, убедитесь, что это первый элемент внутри элемента. Сначала я поставил AppSettings.

Ответ 6

Я знаю, что это уже ответили, но у меня была такая же проблема в моих модульных тестах. Я разорвал волосы - добавив раздел appSettings, а затем объявил раздел конфигурации в соответствии с ответом. Наконец выяснилось, что я уже объявил раздел appSettings дальше моего файла конфигурации. Оба раздела указали на мой внешний файл настроек "appSettings.config", но первый элемент appSettings, используя атрибут file, а другой использовал атрибут configSource. Я знаю, что речь шла о connectionStrings. Разумеется, это происходит, если элемент appSettings является элементом connectStrings, который дублируется с разными атрибутами.

Надеюсь, это может предоставить кому-то еще решение, прежде чем они пойдут по пути, который я сделал, что приводит к растрате час или два. вздох о жизни наших разработчиков. Мы тратим больше нескольких часов на отладку, чем потратили на развитие!

Ответ 7

Если у вас есть параметры пользовательской области, у вас также может быть файл user.config где-нибудь в [Userfolder]\AppData\Local\[ProjectName].

Если впоследствии вы удалите параметры пользовательской области, user.config не будет автоматически удален, и его присутствие может вызвать то же сообщение об ошибке. Удаление папки помогло мне.

Ответ 8

Я начал эту проблему после удаления Oracle Client Drivers и удалил C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.config!

Копирование с другого компьютера разрешило проблему.

Ответ 9

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="xyz" value="123" />    
  </appSettings>
</configuration>

Ответ 10

Ничего страшного, чтобы понять это. По какой-то причине изменение атрибута [assembly: AssemblyCompany("CompanyName")] в AssemblyInfo.cs заставило эту ошибку исчезнуть. Я ссылался на проект, который имел другое значение для атрибута [assembly: AssemblyCompany("CompanyName")]. Я понял, что оба проекта имеют одинаковое значение атрибута, и он отлично работает!

Ответ 11

Такая же проблема со мной Я решил свою проблему, удалив verion = "v3.5" из App.config.

До

 <?xml version="1.0" encoding="utf-8"?>
  <configuration>

  <startup>

 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
 </startup>
 <supportedRuntime version="v3.5" />//Remove this
</configuration>

Решение

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
  </startup>
  </configuration>

Вот как использовать версию на

Элемент Runtime поддержки MSDN

Ответ 12

В моем случае единственным решением было добавить ссылку на System.Configuration в моем тестовом проекте.

Ответ 13

Стоит отметить, что если вы добавите такие вещи, как строки подключения, в app.config, что если вы добавляете элементы за пределами определенных разделов конфигурации, то они не будут немедленно жаловаться, но когда вы попытаетесь получить к нему доступ, может затем получить вышеуказанные ошибки.

Свернуть все основные разделы и убедиться, что нет элементов за пределами определенных. Очевидно, когда вы его заметили.

Ответ 14

Это немного глупо, но для меня я исправил это, сделав последнее из исходного кода моего кода. Я думаю, что появился какой-то новый элемент конфигурации, который был добавлен кем-то другим, и мне нужно было перезаписать мои файлы конфигурации. OP показывает ошибку, которую я получил, что на самом деле не указывало мне в правильном направлении.

Ответ 15

Я тоже столкнулся с той же проблемой, но случайно я написал без написания, предыдущий должен войти внутрь этих тегов. поэтому возникла ошибка "Конфигурационная система с ошибкой инициализации". Надеюсь, что это поможет.

Ответ 16

В моем случае у меня есть два конфигурационных файла в файле app.config. После удаления одного, скрывающегося в кодовых строках, приложение работает нормально.

Итак, для кого-то есть такая же проблема, проверьте, есть ли у вас дубликаты конфигураций.

Ответ 17

Если вы имеете дело с Azure WebJob - мне пришлось удалить следующее после обновления до последней версии 4.6.1.

  <compilation debug="true" targetFramework="4.6.1">
    <assemblies>
      <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </assemblies>
  </compilation>

Надеюсь, что это поможет.

Ответ 18

В моем случае в моем файле .edmx я выполнил команду "Обновить модель из базы данных". Эта команда добавила ненужную строку подключения в мой файл app.config. Я удалил эту строку подключения, и все снова было хорошо.

Ответ 19

Я решил проблему с помощью приведенного ниже кода

   <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings"
                  type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

      <section name="YourProjectName.Properties.Settings"
               type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
               requirePermission="false" />

    </sectionGroup>

  </configSections>
  <appSettings>
    <add key="SPUserName" value="TestUser" />
    <add key="SPPassword" value="UserPWD" />
  </appSettings>
</configuration>

Ответ 20

Попробуйте сохранить файл .config как utf-8, если у вас есть "специальные" символы. Это было проблемой в моем случае консольного приложения.

Ответ 21

Как упомянул @Flash Gordon в своем комментарии, вам необходимо определить любой пользовательский тег (как раздел) в файле App.config в разделе <configSections>. Например, вы работаете над проектом автоматизации тестирования с SpecFlow и добавляете <specFlow>, тогда простейшая версия App.config будет выглядеть следующим образом: enter image description here

Ответ 22

Я просто имел это, и это было, потому что у меня был элемент <configuration>, вложенный в элемент <configuration>.

Ответ 23

После долгого поиска я понял, что это исключение имеет внутреннее исключение, которое говорит вам точно, что не так с вашим конфигурационным файлом