所以刚刚下载了一个新项目的源代码,该项目可以在其他几个开发人员的框中构建并运行良好。我收到了错误:
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解决方案有助于:
开发人员在Windows 8.1环境中遇到了同样的情况,他转移到Windows 7环境并修复了错误。我正在使用Windows 7专业版,所以我想知道我的.NET框架安装是否存在问题。
ASP.NET MVC网站的目标是4.0版。我的其他大多数没有问题的项目都是针对.NET 4.5
答案 0 :(得分: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 Connector安装添加,或者我可能自己进行了更改。
所以connectionstring集合正在从我的machine.config加载一个连接,所以collection[1]
数组位置没有预期的连接字符串。这解释了为什么一些开发人员在他们的机器上没有问题,而其他开发人员确实在他们的机器上存在问题。
答案 1 :(得分: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>