Search code examples
c#configurationmanager

System.NullReferenceException with windows service of DB connection string


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

Solution

  • 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