2013-12-13 19 views
2

我書面方式一個窗口服務,我使用捕捉異常嘗試:System.NullReferenceException與DB連接字符串的窗口服務

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

調用堆棧請。 – Matt

+0

你的意思是什麼? – Dolphin

+0

異常的堆棧跟蹤,它顯示發生異常的位置。如果.NET框架符號存在,您將獲得更有用的堆棧跟蹤。 – Matt

回答

1

您正在尋找在ConfigurationManager的錯誤部分。

嘗試把的ConnectionString在web.config的面積的ConnectionStrings並呼籲

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

如果您仍然有問題,將斷點上線,看到正在加載哪個的ConnectionStrings。

2

試試這個:

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

我以爲最初但注意到他實際上已經獲得了存儲在配置文件的AppSettings部分中的字符串 – Liath

相關問題