数据库连接字符串的windows服务的System.NullReferenceException

本文关键字:System NullReferenceException 服务 windows 字符串 数据库连接 | 更新日期: 2024-09-17 02:33:48

我正在编写一个windows服务,我使用try:捕获了一个异常

try
{
    connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"].ToString();
}
catch (Exception ex)
{
    logger.Error("get the connection string failed,detail:" + ex.ToString());
}

输出为:

获取连接字符串失败,详细信息:System.NullReferenceException:未设置具有对象引用的实例。

它无法正确获取连接字符串。

这是我的配置文件(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>

哪里出了问题?为什么无法获取连接字符串?

我一直在谷歌上搜索,却找不到哪里出了问题?

某些原因可能导致问题?

堆栈轨迹:

 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

数据库连接字符串的windows服务的System.NullReferenceException

试试这个:

connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

因为您的程序位置没有programName.exe.config文件,ConfigurationManager无法访问内容,所以请确保该文件存在。

或者您可以链接到那里了解更多关于ConfigurationManager:的信息

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

您在ConfigurationManager中查找错误的部分。

尝试将ConnectionString放在web.config的ConnectionStrings区域中,并调用

connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"];

如果您仍然有问题,请在行上设置一个断点,并查看正在加载哪些ConnectionStrings。