I am writting a windows service, and I catch an exception using try:
try
{
connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString();
}
catch (Exception ex)
{
logger.Error("get the connection string failed,detail:" + ex.ToString());
}
The output is:
get the connection string failed,detail:System.NullReferenceException: not set an instance with a object reference.
It can't get the connection string correctly.
And this is my configuration file(app.config) :
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
<add key="connStr" value="Data Source=Dolphin-PC;Initial Catalog=jsptpd_SYS;Persist Security Info=True;User ID=sa;Password=ccir"/>
</appSettings>
</configuration>
Where is wrong? Why can't get the connection string?
I've been searching from google and can't find where is wrong?
Some reason can cause the problem?
The stack track:
2013-12-13 21:37:19,895 [17] ERROR ApplicationInfoLog [(null)] <(null)>
- get connection string failed,detail:
System.NullReferenceException: not set an instance with a object reference.
on Jsptpd.JobScheduler.jsptpdJobScheduler.OnStart(String[] args) location
D:\jsptpd\Code\jsptpdJobScheduler\jsptpdJobScheduler\jsptpdJobShedule.cs:line 41
It is because your program location don't have a programName.exe.config file,the ConfigurationManager can't access the content,so make sure the file exist.
Or you can link there to know more about ConfigurationManager :
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx