奇怪的";ConnectionString属性尚未初始化";错误
本文关键字:quot 初始化 错误 属性 ConnectionString | 更新日期: 2023-09-27 18:25:57
我们刚刚下载了一个新项目的源代码,该项目在其他几个开发人员的盒子上构建并运行良好。我得到错误:
ConnectionString属性尚未初始化。
我可以使用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和root中,以防由于某种原因,没有源代码的lib试图读取App.Config并忽略Web.Config。
没有帮助的StackOverflow解决方案:
- 如何修复";ConnectionString属性尚未初始化"
- ConnectionString属性尚未初始化错误
- 解决错误";ConnectionString属性尚未初始化"
前几天,一位开发人员在Windows 8.1环境中遇到了同样的情况,他转到了Windows 7环境,错误得到了修复。我使用的是Windows7专业版,所以我想知道这是否是我安装.NET Framework的问题。
ASP.NET MVC网站的目标版本是4.0。我的大多数其他项目都是以.NET 4.5 为目标的,这些项目都没有问题
因此,我能够获得加载连接字符串的类库的源代码,结果发现该代码正在加载一组连接字符串,如下所示:
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连接器安装添加的,也可能是我自己更改的。
因此,connectionstring集合正在从我的machine.config加载连接,因此collection[1]
数组位置中没有预期的连接字符串。这解释了为什么一些开发人员的计算机上没有问题,而其他开发人员的机器上确实有问题。
选项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>