Не удалось Инициализировать систему конфигурации
Я новичок в 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);
}
но всякий раз, когда я пытаюсь ввести имя пользователя и пароль, возникает ошибка Конфигурация системы не удалось инициализировать. Мне просто интересно, что это за проблема и как я могу ее решить?
пожалуйста, помогите.
19 ответов
убедитесь, что ваш конфигурационный файл (web.config если web, или app.config if 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
.
это сработало для меня, надеюсь, это поможет
удалить старые файлы конфигурации от c:\Users\username\AppData\Local\appname и c:\Users\username\AppData\Roaming\appname а затем попробуйте перезапустить приложение.
иногда ошибка возникает из-за того, что windows создает дубликат в
C:\Users\App Data\Local\"Имя Приложения"...
просто удалите эту папку и готово. попробовать его.
Если вы добавили свои собственные профили настроек App.Config
, убедитесь, что вы определили в разделе <configSections>
элемент. Я добавил мой конфигурационный XML, но забыл объявить раздел конфигурации сверху - что вызвало исключение "система конфигурации не смогла инициализировать" для меня.
У меня была такая же проблема с классом MSTest:Марлон грех в своей статье говорит: "элемент должен быть определен как первый элемент в приложении.конфиг."
поэтому убедитесь, что первый элемент под элементом. Сначала я поставил AppSettings.
Я знаю, что на это уже ответили, но у меня была точно такая же проблема в моих модульных тестах. Я рвал волосы - добавляя раздел appSettings, а затем объявляя раздел конфигурации в соответствии с ответом. Наконец, выяснилось, что я уже объявил раздел appSettings дальше по моему конфигурационному файлу. Оба раздела указывали на мой внешний файл настроек " appSettings.config", но первый элемент appSettings с использованием атрибута пока другой использовал атрибут в разделе configsource. Я знаю, что вопрос был о связях. Конечно, это происходит, если элемент appSettings является элементом connectionStrings дублируется с различными атрибутами.
надеюсь, это может предоставить кому-то еще решение, прежде чем они пойдут по пути, который я сделал, что приводит к потере часа или двух. вздох о жизни нас, разработчиков. Мы тратим больше часов на отладку, чем на разработку!
Если у вас есть параметры области пользователя, у вас также может быть пользователь.конфигурационный файл где-то в папке [Userfolder]\AppData\Local[ProjectName].
Если вы позже удалите настройки области пользователя, Пользователь.config не будет автоматически удален, и его присутствие может вызвать то же сообщение об ошибке. Удаление папки сделало трюк для меня.
вау, мне потребовалась вечность, чтобы понять это. По какой-то причине меняется атрибут [assembly: AssemblyCompany("CompanyName")]
at AssemblyInfo.cs
эта ошибка исчезла. Я ссылался на проект, который имел другое значение для атрибута [assembly: AssemblyCompany("CompanyName")]
. Я убедился, что оба проекта имеют одинаковое значение атрибута, и он отлично работал!
Я начал получать эту проблему после удаления драйверов клиента Oracle, и он удалил мой C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.config!
скопировать его с другого компьютера, проблема решена.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="xyz" value="123" />
</appSettings>
</configuration>
же проблема со мной, я решил свою проблему путем удаления верион=" "В3".5" из приложения.конфиг.
до
<?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>
вот как использовать версии
стоит отметить, что если вы добавить такие вещи, как строки подключения в App.config, что если вы добавляете элементы вне определенных разделов конфигурации, что он не будет сразу жаловаться, но при попытке доступа к нему, что вы можете получить вышеуказанные ошибки.
сверните все основные разделы и убедитесь, что нет элементов вне определенных. Очевидно, когда вы действительно заметили это.
в моем случае единственным решением было добавить ссылку на System.Configuration
в моем тестовом проекте.
Это довольно глупо, но для меня я исправил это, сделав get latest из source control на моем коде. Я думаю, что был какой-то новый элемент конфигурации, который был добавлен кем-то другим, и мне нужно было перезаписать мои файлы конфигурации. OP показывает ошибку, которую я получил, которая на самом деле не указывала мне в правильном направлении.
Я тоже столкнулся с той же проблемой, но случайно я написал не записывая, предыдущий должен войти внутрь этого тега. таким образом, возникла ошибка "система конфигурации не удалось инициализировать". Надеюсь, это поможет
в моем случае у меня есть два configsections в приложении.конфигурационный файл. После удаления одного, скрывающегося в строках кода, приложение работает нормально.
поэтому для кого-то есть та же проблема, проверьте, есть ли у вас дубликаты конфигураций.
Если вы имеете дело с 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>
надеюсь, что это помогает.
в моем случае, в моем .edmx-файл я запустил команду "обновить модель из базы данных". Эта команда добавила ненужную строку подключения к моему приложению.конфигурационный файл. Я удалил эту строку подключения и все снова было хорошо.
Я решил проблему, используя приведенный ниже код
<?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>