Не удалось инициализировать систему конфигурации
Я новичок в 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
После долгого поиска я понял, что это исключение имеет внутреннее исключение, которое говорит вам точно, что не так с вашим конфигурационным файлом