Так что просто загрузили исходный код для нового проекта, который строит и работает отлично на пару других ящиков разработчика. Я получаю сообщение об ошибке:
Свойство ConnectionString не было инициализировано.
Я могу подключиться к базе данных через SQL Server Management Studio, используя строку подключения в моем Web.config без проблем.
Исходный код библиотеки, которая выбрасывает эту ошибку, недоступен.
Проект представляет собой проект 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 на всякий случай, по какой-то причине lib с исходным кодом пытается прочитать App.Config и игнорирует Web.config.
Решения StackOverflow, которые не помогли:
У разработчика была такая же ситуация в среде Windows 8.1 на днях, он перешел в среду Windows 7, и ошибка была исправлена. Я использую Windows 7 pro, поэтому я задаюсь вопросом, является ли это проблемой при установке.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 Connector, или, возможно, я сделал это изменение самостоятельно.
Таким образом, сборка connectionstring загружала соединение с моего machine.config, поэтому в элементе array 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>