2014-10-09 301 views
1

所以剛剛下載了一個新項目的源代碼,該項目在其他開發人員的盒子上構建並運行良好。我得到的錯誤:奇怪「ConnectionString屬性尚未初始化。」錯誤

The ConnectionString property has not been initialized.

我能夠使用連接字符串在我的web.config通過SQL Server Management Studio中連接到數據庫沒有問題。

拋出此錯誤的庫的源代碼不可用。

該項目是一個ASP.NET MVC項目與在Web.config以下值

<connectionStrings> 
    <add name="DbConnection" connectionString="Data Source=la-foo-server\development,1444;database=mydb;user id=myId;password=myPassword;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
<appSettings> 
    <add key="ConnectionStringName" value="DbConnection" /> 
</appSettings> 

我已經嘗試添加一個app.config到我的ASP.NET網站只是在bin和根因爲某些原因,沒有源代碼的lib正在嘗試讀取App.Config並忽略Web.config。

StackOverflow的解決方案,具有幫助:

開發人員對在Windows 8.1環境中,這同樣的情況有一天,他轉移到Windows 7環境並且錯誤得到修復。我正在使用Windows 7專業版,所以我不知道這是否與我的.NET框架安裝問題。

ASP.NET MVC網站的目標是版本4.0。我的大多數其他項目,如果沒有問題,所有的工作都瞄準.NET 4.5

+0

是否可以通過ODBC驅動程序使用此連接字符串信息來連接數據庫。 – 2014-10-09 01:30:46

+0

我能夠通過Sql Management Studio連接到數據庫,應用程序甚至沒有找到配置文件中的連接字符串就是我認爲錯誤是。 – 2014-10-09 01:31:58

+0

您的應用程序的應用程序池是否指向目標框架4.0。 – 2014-10-09 01:36:40

回答

1

所以我能得到的加載連接字符串的類庫的源代碼,事實證明代碼正在加載一系列連接字符串,如下所示:

var collection = System.Web.Configuration.WebConfigurationManager.ConnectionStrings ?? System.Configuration.ConfigurationManager.ConnectionStrings; 

     if (collection[1].Name == null) 
      throw new Exception("Unable to detect connection string in app.config or web.config! Default connection string name is \'DbConnection.\'"); 

     db = new Database(collection[1].Name); 

我的machine.config恰好在MySql中有一個連接字符串,名爲LocalMySqlServer。此連接字符串可能已由.NET MySql連接器安裝添加,或者我可能自己進行了更改。

因此,連接字符串集合正在從我的machine.config中加載一個連接,所以collection[1]陣列位置中沒有預期的連接字符串。這就解釋了爲什麼一些開發人員在他們的機器上沒有問題,而其他開發人員在他們的機器上也有問題。

+1

應該恢復連接字符串通過名稱,名稱是連接字符串的標識符,而不是它在配置文件中的位置(您無法控制,因爲您找到了)。 – Albireo 2014-10-15 12:34:04

+0

哦,我知道,我沒有寫代碼,它是我必須使用的DLL – 2014-10-16 19:13:24

0

選項1:

<connectionStrings> 
    <add name="DbConnection" connectionString="Data Source=la-foo-server\development,1444;Initial Catalog=mydb;user id=myId;password=myPassword;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

選項2:

<connectionStrings> 
    <add name="DbConnection" connectionString="Data Source=la-foo-server\development;Initial Catalog=mydb;user id=myId;password=myPassword;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

這沒有幫助,雖然 – 2014-10-09 22:03:43

相關問題