I have a web application running on my server. And I needed to develop a small utility application which has to do some work in database,
and I don't want to write same database credentials or connection strings(and some other additional app-settings) in this new console application,
I want it to read settings from same web.config
file. But the problem I was facing when I tried this code:
string filePath = @"D:\MyProject\Web.config"; Configuration c1 = ConfigurationManager.OpenExeConfiguration(filePath); var value1 = c1.AppSettings.Settings["Key1"].Value;
It was not giving any error if it was failed to load the given file path, but also was not working as per my expectations. The Configuration
object c1
was loaded fine but when I tried to read ApSettings
, it was empty. There was no key/value pairs loaded in this
collection object. So trying to read value for Key1
was giving me error as:
Object reference not set to an instance of an object.
After wasting much time thinking and searcing on this issue, I found this solution. It worked fine and allowed me read config file from another application.
string filePath = @"D:\MyProject\Web.config"; var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = filePath }; var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var value = configuration.AppSettings.Settings["Key1"].Value;
Here I get proper value of Key1
, in variable value
.