数据库连接字符串的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
试试这个:
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。