I've got a Visual Studio project that recently started throwing a ConfigurationErrorsException, and I can't figure out where it's coming from. I've hunted high and low, can't find anything like the error, and it doesn't appear for any of my teammates when they run the project on their PCs.
Does anyone have any specific advice on how to debug the loading and parsing of config files? Since the ConfigurationManager is framework code, I don't have the source and can't step into it with the Visual Studio debugger, so I'm hunting around in the dark.
I'd dearly love to be able at least to see which files are loaded, what sections, keys, etc. are retrieved, and what values are overridden when subsequent config files load.
Just FYI, the project is an InfoPath form project edited in Visual Studio 2008, using .NET 3.5. The exception happens when the form is first loading; a method tries to get a Web Service URL from the config file:
_clmWebSrvc.Url = System.Configuration.ConfigurationSettings.AppSettings["CLMUtilityWebServiceUrl"];
which fails (only for me!) with:
System.Configuration.ConfigurationErrorsException
The configuration section 'connectionStrings' has an unexpected declaration.
at System.Configuration.ConfigurationManager.get_ConnectionStrings()
I can't find a connectionStrings
section anywhere; there used to be a default one in machine.config
, but I removed it long ago as it caused conflicts in some of the web apps I maintain. There's nothing of the sort in Infopath.exe.config, nor in any other config file that would be in the inheritance chain. I stopped the separate web site I had running in local IIS. I reinstalled VS2008, InfoPath, cleared the InfoPath FormCache, renamed my user profile and restarted my PC, logged in as a totally different user, all to no effect.
As you can see, these are all clumsy, desperate attempts to find out what config files affect the app. What I really want is a utility that will show me exactly what's being loaded. Is there any such animal?
Thanks!