从数据库获取提供程序信息时发生错误。这可能是由实体框架使用不正确的连接字符串引起的。检查内部异常以获取详细信息,并确保连接字符串正确。
内部异常:{"The provider did not return a ProviderManifestToken string."}
我搜索过其他线程,因为有很多类似的错误,但我似乎无法找到解决方案。
我使用的是VS2012 Professional和SQL Server 2012.我可以使用Windows身份验证使用Server explorer连接到服务器。我正在构建一个具有多层的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>
这就是我的Entity Framework类库层中的app.config。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
另外,我尝试将app.config defaultConnectionFactory类型更改为
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
但它没有改变任何东西。
我不确定我所做的任何改变甚至意味着让我担心。当然,我可以在线找到解决方案并修复我的问题,但我真的很想了解web.config以及这一切意味着什么。除了找到解决这个问题的方法之外,还有人能指出我正确的方向来学习web.configs吗?
感谢您的帮助。
答案 0 :(得分:8)
就我而言,我的SQL Server实例没有运行。我只是启动了服务,一切正常。希望这有助于有人在路上。
答案 1 :(得分:4)
我修好了。
只需要放置&#34;。&#34;对于数据源中的localmachine,如下所示:
<add name="MYSQLSERVER"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\MYSQLSERVER;Trusted_Connection=true"></add>
</connectionStrings>
答案 2 :(得分:3)
这是另一个可能的原因:
我在AWS上有我的(ASP.NET)HTTP服务器和MySQL / Aurora服务器(理解AWS不是OP评论的一部分)。
我的桌面(实际上,我们的建筑物)IP已在MySQL / Aurora服务器的安全组中列入白名单,因此一切都非常适合开发。
但是ASP.NET服务器的IP 不为MySQL / Aurora实例列入白名单,因此ASP服务器的EF连接请求被拒绝, em>引起了该主题顶部的异常。
深奥,但也许这有助于某人。
答案 3 :(得分:3)
答案 4 :(得分:0)
..并且最终(?!?)不要忘记使用&#39;首选32位&#39;检查,因为这将消除生成此错误消息的已知BUG(具有内部异常消息=&#39; Arithemtic overflow&#39;)
答案 5 :(得分:0)
答案 6 :(得分:0)
在我的情况下,参数是v12.0,我改为v11.0,它正在工作
答案 7 :(得分:0)
我遇到了同样的问题,用包管理器重新安装Npgsql就可以了。 似乎是版本问题。
答案 8 :(得分:0)
对我来说,它在服务器和实例之间使用双反斜杠,例如。\ SQLExPRESS; ...等。
更正为使用。\ SQLEXPRESS
希望它对某人有帮助。
答案 9 :(得分:0)
对我来说,以下所有内容。 1. DB不允许连接到我的开发环境。可能是防火墙的限制。 2.连接字符串的数据库凭据错误。 所以通常来说,连接字符串不正确。
答案 10 :(得分:0)
对于最近获得此消息的用户,在更新到MySql.Data 8.0.19时,您还必须更新对EntityFramework的引用,Oracle更改了程序包,现在是MySql.Data.EntityFramework,而不是MySql.Data.Entity或MySql。数据实体。大卫·塞卡(David Sekar)的道具:https://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken
答案 11 :(得分:0)
我经常忘记为什么这个错误经常出现。对我来说,通常我已经更改了数据库的凭据,并且在代码部分没有更改相同的凭据。 以防万一我再次来到这里提醒自己。