У меня есть проект Visual Studio, который недавно начал генерировать исключение ConfigurationErrorsException, и я не могу понять, откуда он. Я охотился высоко и низко, не могу найти ничего похожего на ошибку, и она не появляется ни у одного из моих товарищей по команде, когда они запускают проект на своих ПК.
Есть ли у кого-нибудь конкретные советы по отладке загрузки и разбора файлов конфигурации? Поскольку ConfigurationManager - это фреймворковый код, у меня нет исходного кода, и я не могу войти в него с помощью отладчика Visual Studio, поэтому я охотюсь в темноте.
Мне бы очень хотелось иметь возможность хотя бы увидеть, какие файлы загружены, какие разделы, ключи и т. Д. Получены и какие значения переопределяются при загрузке последующих файлов конфигурации.
Просто к сведению, проект представляет собой проект формы InfoPath, отредактированный в Visual Studio 2008 с использованием .NET 3.5. Исключение происходит при первой загрузке формы; метод пытается получить URL-адрес веб-службы из файла конфигурации:
_clmWebSrvc.Url = System.Configuration.ConfigurationSettings.AppSettings["CLMUtilityWebServiceUrl"];
, что не удается (только для меня!) С:
System.Configuration.ConfigurationErrorsException
The configuration section 'connectionStrings' has an unexpected declaration.
at System.Configuration.ConfigurationManager.get_ConnectionStrings()
Я нигде не могу найти раздел connectionStrings
; Раньше в machine.config
было значение по умолчанию, но я давно удалил его, так как это вызывало конфликты в некоторых веб-приложениях, которые я поддерживаю. Ничего подобного нет ни в Infopath.exe.config, ни в любом другом файле конфигурации, который был бы в цепочке наследования. Я остановил отдельный веб-сайт, который работал в локальной IIS. Я переустановил VS2008, InfoPath, очистил InfoPath FormCache, переименовал мой профиль пользователя и перезагрузил компьютер, вошел в систему как совершенно другой пользователь, но все безрезультатно.
Как видите, все это неуклюжие, отчаянные попытки выяснить, какие файлы конфигурации влияют на приложение. Что я действительно хочу, так это утилита, которая покажет мне, что именно загружается. Есть ли такое животное?
Спасибо!