提供程序未返回ProviderManifestToken字符串实体框架

时间:2013-09-23 18:19:14

标签: c# sql visual-studio entity-framework visual-studio-2012

从数据库获取提供程序信息时发生错误。这可能是由实体框架使用不正确的连接字符串引起的。检查内部异常以获取详细信息,并确保连接字符串正确。

内部异常:{"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吗?

感谢您的帮助。

12 个答案:

答案 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)

我也遇到了这个错误,我解决了将这些NuGet软件包降级的问题

  

MySql.Data-6.9.12

     

MySQL.Data.Entity-6.8.8

这是我引用的参考文献URL

答案 4 :(得分:0)

..并且最终(?!?)不要忘记使用&#39;首选32位&#39;检查,因为这将消除生成此错误消息的已知BUG(具有内部异常消息=&#39; Arithemtic overflow&#39;)

答案 5 :(得分:0)

当我尝试连接到mysql时遇到这个问题,原因是我忘记在“connectionStrings”中添加“密码”

答案 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)

我经常忘记为什么这个错误经常出现。对我来说,通常我已经更改了数据库的凭据,并且在代码部分没有更改相同的凭据。 以防万一我再次来到这里提醒自己。