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


8 Answers

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

Question

Я новичок в 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);
}

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

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




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

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




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

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




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

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




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




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



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




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




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




Related