我正在写一个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
答案 0 :(得分:2)
试试这个:
connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
答案 1 :(得分:2)
这是因为您的程序位置没有 programName.exe.config 文件,ConfigurationManager无法访问该内容,因此请确保该文件存在。
或者您可以在那里链接以了解有关ConfigurationManager的更多信息:
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx
答案 2 :(得分:1)
您正在查看ConfigurationManager的错误部分。
尝试将ConnectionString放在web.config的ConnectionStrings区域并调用
connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"];
如果您仍有问题,请在该行上设置断点并查看正在加载的ConnectionStrings。