it-roy-ru.com

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

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

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

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

198
sean

Убедитесь, что ваш файл конфигурации (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.

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

361
feluco79

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

96
jarek

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

C:\Users\Данные приложения\Local\"Имя вашего приложения" ...

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

17
Ashu Gupta

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

11
Flash Gordon

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

Поэтому убедитесь, что это первый элемент внутри элемента. Я поставил AppSettings первым.

6
Aligned

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

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

4
csharpforevermore

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

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

3
Jeremy Thompson

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

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

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

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

1
user5093161

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

1
Tono Nam

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

0
Versatile

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

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

0
Anthony Horne

Если вы имеете дело с веб-заданием Azure - мне пришлось удалить следующее после обновления до последней версии 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>

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

0
Dave Friedel

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

0
DLeh

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

0
Jose Santos

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

0
DenisD

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

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

0
oopsdazie

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

   <?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>
0
Sumant Singh

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

0
lukalev

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

0
Priyabrata biswal