2009-11-02 46 views
2

在我的C#-WinForms的應用程序(.NET 3.5,VS2008)我用讀App.Config中:爲什麼我的ConnectionsStringCollection比app.config中的連接字符串部分多?

Configuration myConfig = 
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

App.config中包含了的ConnectionStrings-第二節連接字符串:

<connectionStrings> 
    <add name="db1" connectionString="connection1" 
    providerName="System.Data.SqlClient"/> 
    <add name="db2" connectionString="connection2" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

(簡寫爲提高可讀性連接字符串)

但是當我通過ConnectionStringsCollection循環,我覺得它有條目,而不是預期兩個。額外的入口點指向本地SqlExpress-Server上的「aspnetdb.mdf」數據庫。我不記得在任何地方添加這個,我無法在我的項目文件中找到它作爲字面值。使用調試器觀察集合我發現我的連接字符串具有app.config作爲源。額外的字符串有null作爲源代碼,所以我認爲.net會將它從某個地方轉化出來。

如何擺脫此條目或失敗,我如何告訴配置管理器只使用app.config中的連接字符串?

回答

2

的ASPNETDB.MDF來自默認的連接字符串的收集,通過增加

<clear /> 

您元素的頂部取下。

+0

<的ConnectionStrings> < - 這裏的地方吧 - > <添加名稱= 「myCon1」 ...... <添加名稱= 「myCon2」 ... 2015-08-09 03:21:08

6

你檢查了machine.config嗎?

(在%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG發現64位使用Framework64)。

+1

大概是正確的。在進行第一次連接時遇到同樣的問題,但我們的團隊中的一個未能運行代碼。他安裝了一個晦澀的oracle工具,這是連接字符串在機器配置中的卸載後倖存下來的(這真是一個驚喜,因爲Oracle安裝程序製作精良;-) – 2009-11-02 13:35:46

+0

這是正確的,在那裏找到了條目。非常感謝。但是,我與Stephen Newmans一起回答:通過在我的部分頂部添加「清除」,我可以確保我的應用程序的最終用戶僅處理來自app.config的連接。 – 2009-11-02 13:42:06

相關問題