Системе конфигурации не удалось инициализироваться - PullRequest
207 голосов
/ 22 июня 2011

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

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

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

Ответы [ 21 ]

370 голосов
/ 24 июня 2011

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

<?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.

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

101 голосов
/ 02 мая 2013

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

18 голосов
/ 28 мая 2015

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

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

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

12 голосов
/ 14 ноября 2013

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

6 голосов
/ 28 августа 2013

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

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

4 голосов
/ 29 марта 2015

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

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

3 голосов
/ 19 января 2015

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

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

3 голосов
/ 19 марта 2014

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

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

2 голосов
/ 20 ноября 2014
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="xyz" value="123" />    
  </appSettings>
</configuration>
1 голос
/ 03 мая 2017

Та же проблема со мной Я решил мою проблему, удалив 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>

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...