Система конфигурации не прошла инициализацию visual studio

Обновлено: 07.07.2024

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Исключение, которое вызывается в случае ошибки конфигурации.

Примеры

В следующем примере кода создается пользовательский раздел и создается ConfigurationErrorsException исключение при изменении его свойств.

В следующем примере показан фрагмент конфигурации, используемый в предыдущем примере.

Комментарии

ConfigurationErrorsExceptionИсключение возникает при возникновении любой ошибки во время чтения или запись сведений о конфигурации.

Конструкторы

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Инициализирует новый экземпляр класса ConfigurationErrorsException.

Свойства

Получает описание причины возникновения данного исключения конфигурации.

Получает описание причины возникновения данного исключения конфигурации.

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

Получает коллекцию ошибок, которые подробно описывают причины возникновения данного исключения ConfigurationErrorsException.

Получает путь к файлу конфигурации, который привел к возникновению данного исключения конфигурации.

Получает или задает ссылку на файл справки, связанный с этим исключением.

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

Получает номер строки в файле конфигурации, в которой возникло данное исключение.

Получает расширенное описание причины возникновения данного исключения конфигурации.

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

Получает строковое представление непосредственных кадров в стеке вызова.

Возвращает метод, создавший текущее исключение.

Методы

Определяет, равен ли указанный объект текущему объекту.

При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений.

Получает путь к файлу конфигурации, из которого загружался внутренний объект XmlNode, когда возникло данное исключение конфигурации.

Получает путь к файлу конфигурации, из которого считывался внутренний объект XmlReader, когда возникло данное исключение конфигурации.

Служит хэш-функцией по умолчанию.

Получает номер строки в файле конфигурации, которую представлял внутренний объект XmlNode, когда возникло данное исключение конфигурации.

Получает номер строки в файле конфигурации, которую обрабатывал внутренний объект XmlReader, когда возникло данное исключение конфигурации.

Задает объект SerializationInfo с именем файла и номером строки, в которых возникло данное исключение конфигурации.

Возвращает тип среды выполнения текущего экземпляра.

Создает неполную копию текущего объекта Object.

Создает и возвращает строковое представление текущего исключения.

События

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

Я новичок в Visual Studio. В настоящее время я создаю форму входа.

У меня есть этот код.

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

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

Обратите внимание, что внутри элемента configuration первым дочерним элементом должен быть элемент configSections .

Убедитесь, что в свойстве name элемента section вы заменили YourProjectName фактическим названием вашего проекта.

Со мной случилось так, что я создал веб-сервис в проекте библиотеки классов, затем я скопировал (перезаписал) файл конфигурации (чтобы перенести конфигурацию конечных точек) в свое приложение Windows, и у меня возникла та же проблема. Я случайно удалил configSections .

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

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

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

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

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

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

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

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

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

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

Если у вас есть настраиваемый раздел, вам нужно указать это в разделе configSections прямо под тегом конфигурации.

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

Если у вас есть синтаксическая ошибка в machine.config, то ожидается и эта ошибка.

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

У меня было 2 ссылки на одну и ту же сборку вот так:

duplicate reference

project file before and after

Удаление (дубликата) ссылки, выделенной желтым, исправило это для меня.

Надеюсь, это сработает для кого-то еще, какое-то время меня это сводило с ума.

Я перезапустил Visual Studio и даже весь компьютер. Я очистил проект, перестроил и удалил файл bin.

Ничего не помогло, пока я не изменил конфигурацию с x64 на x86. Он работал на x86, но когда я вернул его обратно, он тоже работал!

У меня было это только потому, что у меня был элемент <configuration> , вложенный внутри элемента <configuration> .

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

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

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

Если вы имеете дело с веб-заданием Azure, мне пришлось удалить следующее после обновления до последней версии 4.6.1.

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

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

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

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

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

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

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

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

шаг 1. Установите System.Configuration.ConfigurationManager с помощью Nuget Manager

шаг 2: добавьте новый файл App.Config

step3: Получите значение

Если вы вызываете его из Class Library , добавьте файл App.Config в свой основной проект.

Я решил проблему, используя приведенный ниже код

Та же проблема со мной. Я решил свою проблему, удалив verion = "v3.5" из App.config.

До

Решение

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

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

После долгого поиска я понял, что это исключение имеет внутреннее исключение, которое точно сообщает вам, что не так с вашим файлом конфигурации.


Если она возникает из-за NET Framework, рекомендуется удалить текущую установку и загрузить последнюю версию из сайта Майкрософт.

Проверка системных файлов

Чаще всего ошибка возникает из-за сбоя конфигурации системы. Каждый раз, когда компьютер сталкивается с этими неполадками, он не может продолжить выполняемую операцию. Для исправления попробуйте запустить сканирование SFC, чтобы проверить есть ли нарушения целостности ОС. Если ей не удастся все восстановить, выполните команду DISM.

Да входа в «Диспетчер задач» запустите команду taskmgr из окна «Выполнить» (Win + R).


Перейдите на вкладку Файл, расположенный в верхней части окна, и кликните на пункт Новая задача (Выполнить). Наберите «powershell» и установите флажок «создать задачу с правами администратора».


В консоли Powershell наберите sfc /scannow и нажмите на Enter. Процесс может занять некоторое время, поскольку утилита будет проверять всю файловую структуру Windows на наличие повреждений.


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

Проверка файлов конфигурации

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

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



Перезагрузите компьютер. Посмотрите, решает ли это ошибку инициализации.

Удаление файла конфигурации

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

Откройте Проводник и перейдите в папки:
C:\Users\<имя пользователя>\AppData\Local
C:\Users\< имя пользователя >\AppData\Roaming

Найдите папки с именем приложения, удалите их или переместите в другой каталог. Перезапустите систему и проверьте, возникает ли ошибка инициализации.

Удаление конфликтующих программ

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

Для входа в конфигурацию системы запустите команду msconfig из окна «Выполнить» (Win + R).


На вкладке Службы установите флажок «Не отображать службы Майкрософт» и кликните на «Отключить все». Сохраните изменения нажатием на кнопку «Применить».


На вкладке Автозагрузка щелкните по ссылке Открыть Диспетчер задач. Отключите все программы из автозагрузки, чтобы предотвратить их запуск при старте системы.


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

Создание новой учетной записи

Если в новой учетной записи не сталкиваетесь со сбоем при инициализации, то можете перенести свои данные, а текущую со временем удалить.

Я новичок в Visual Studio. В настоящее время я создаю форму для входа.

У меня есть этот код.

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

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

Обратите внимание, что внутри элемента configuration первый дочерний элемент должен быть элементом configSections .

В свойстве name в элементе section убедитесь, что вы заменили YourProjectName на свое фактическое название проекта.

Случилось со мной, что я создал веб-сервис в проекте библиотеки классов, затем я скопировал (переписал) файл конфигурации (чтобы привести конфигурацию конечных точек) в мое приложение Windows, и у меня возникла такая же проблема. Я случайно удалил configSections .

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

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

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

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

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

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

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

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

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

Читайте также: