2014-10-09 113 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

相关问题