Ответ 1
В моем случае это был мой экземпляр SQL Server, который не был запущен. Я просто начал службу, и все сработало нормально. Надеюсь, это поможет кому-то по дороге.
Произошла ошибка при получении информации о поставщике из базы данных. Это может быть вызвано Entity Framework с использованием неправильной строки подключения. Проверьте внутренние исключения и убедитесь, что строка подключения верна.
Внутреннее исключение: {"The provider did not return a ProviderManifestToken string."}
Я искал другие темы, так как есть много похожих ошибок, но я не могу найти решение.
Я использую VS2012 Professional и SQL Server 2012. Я могу подключиться к серверу с помощью Server explorer, используя проверку подлинности Windows. Я создаю приложение webforms с несколькими уровнями. Один из них содержит мой уровень структуры Entity, который содержит мой класс Context.
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<connectionStrings>
<add name="MYSQLSERVER"
providerName="System.Data.SqlClient"
connectionString="Data Source=myComputer\MYSQLSERVER;Trusted_Connection=true"></add>
</connectionStrings>
</configuration>
Вот что выглядит app.config в моем классе библиотеки классов Entity Framework.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
Кроме того, я попытался изменить тип appConnectionFactory app.config на
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
но ничего не изменилось.
Я не совсем уверен, что какие-либо изменения, которые я делаю, даже означают, что меня беспокоит. Конечно, я мог найти решение в Интернете и исправил свою проблему, но мне очень хотелось бы понять web.config и что все это значит. Наверху найти решение этой проблемы, может ли кто-нибудь указать мне в правильном направлении на изучение web.configs?
Благодарим вас за помощь.
В моем случае это был мой экземпляр SQL Server, который не был запущен. Я просто начал службу, и все сработало нормально. Надеюсь, это поможет кому-то по дороге.
Ну, я исправил его.
Просто нужно поставить ".". для локальной машины в источнике данных следующим образом:
<add name="MYSQLSERVER"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\MYSQLSERVER;Trusted_Connection=true"></add>
</connectionStrings>
Вот еще одна возможная причина:
У меня есть и мой (ASP.NET) HTTP-сервер, и сервер MySQL/Aurora на AWS (понял, что AWS не был частью комментариев OP).
Мой рабочий стол (фактически, наш корпус) был включен в группу безопасности сервера MySQL/Aurora, поэтому все отлично работало для разработки.
Но IP-адрес ASP.NET не был включен в белый список для экземпляра MySQL/Aurora, поэтому запрос на соединение EF-сервера ASP-сервера отклонялся, и это вызывало исключение, указанное в верхней части этого потока.
Эзотерический, но, возможно, это помогает кому-то.
Я также столкнулся с этой ошибкой, и я решаю, что понижение этих пакетов NuGet
MySql.Data - 6.9.12
MySQL.Data.Entity - 6.8.8
это мой ссылочный URL, на который я ссылался
.. и FINALLY (?!?) не забудьте создать свой проект с помощью опции "Предпочитать 32-бит", поскольку это приведет к исключению KNOWN BUG, который генерирует это сообщение об ошибке (в котором есть внутреннее сообщение об исключении = "Arithemtic переполнение ')
Я встречаю эту проблему, когда пытаюсь подключиться к mysql, причина в том, что я забываю добавить "пароль" в "connectionStrings"
В моем случае параметр был v12.0, я изменился на v11.0 и работает
У меня была такая же проблема, переустановка Npgsql с менеджером пакетов сделала трюк. Казалось, что проблема с версиями.
Для меня это было использование двойной обратной косой черты между сервером и экземпляром, например. \SQLExPRESS;... и т.д.
Исправление было использовать. \SQLEXPRESS
надеюсь, это поможет кому-то.
Для меня все это было ниже. 1. БД не разрешено подключаться к моей среде разработки. Могут быть ограничения брандмауэра. 2. Строка подключения имела неверные учетные данные для БД. Так что, вообще говоря, неверная строка подключения.