19

我正在尝试使用 ASP.Net MVC3、Entity Framework 和 MySQL 创建一个 Web 应用程序。

我已将以下代码添加到我的 Web.Config 文件中。

<connectionStrings>
    <add name="ContactContext" connectionString="server=localhost;database=contacts;uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>

  </connectionStrings>

我还在项目“Contact_Me”中创建了“Person”模型、“ContactContext”。当我尝试创建一个包含人员模型和联系人上下文的“ContactController”时,它给了我以下错误

“无法检索“Connect_Me.Models.Persons”的元数据。提供者未返回 ProviderManifestToken 字符串”

MYSQ & MVC3 SQL 连接错误 \ProviderManifestToken 但我使用的是 MySQL,这是最接近我的问题。但是答案并没有解决我的问题。

提前致谢

4

8 回答 8

23

我知道这对你们中的一些人来说可能是非常基本的,但是在 EF 无法找到要使用的连接字符串的情况下也会引发此异常。如果您在多层应用程序中工作,请确保将连接字符串添加到您的客户端应用程序,而不是包含您的数据访问代码的类库。只是我的2美分。

于 2012-11-29T19:10:46.607 回答
10

当我的 sql 服务器实际关闭时,我收到了这个错误。因此,请确保您的 sql 服务器已启动并正在运行。

于 2013-03-19T08:00:40.710 回答
5

MySql.Data.Entity如果在使用(latest version is 6.10.X) MySql.Data(latest version is )的 EntityFramework 项目中升级 Nuget 引用,也可能会出现此错误8.0.X。这些版本号应该匹配。您应该使用8.0 及之后版本的包,以及MySql.Data.EntityFramework6.10及之前版本的包。MySql.DataMySql.Data.Entity

此博客文章中有更多详细信息:https ://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken

于 2018-12-27T01:49:14.373 回答
3

问题出在 MySQL 连接器/网络上。

我以前使用 MySQL 连接器/Net 6.3.5,在我卸载它并安装 MySQL 连接器/Net 6.5.4 后,问题得到了解决。您可以在http://www.mysql.com/products/connector/找到最新的连接器

于 2012-04-23T23:12:17.843 回答
2

有时也会因为 sslmode 出现这个问题,对我来说,解决方案是将 sslmode=None 添加到连接字符串

我不得不对我的连接字符串从

<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;" providerName="MySql.Data.MySqlClient" />

<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;sslmode=None;" providerName="MySql.Data.MySqlClient" />
于 2016-11-04T14:39:33.613 回答
0

可能是您的连接字符串中的错误。您是否尝试使用上述登录方式连接到您的数据库实例。尝试更改连接字符串

connectionString="Data Source=.;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>

如果您使用的是 sql server,请使用上面,否则如果您使用的是 sql express,请使用下面的一个

 connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
于 2012-04-22T17:06:44.190 回答
0

即使已经回答了这个问题,但我也遇到了同样的问题,如果它出现在连接字符串中;当我真的不应该使用它时,我拥有了“集成安全”部分;我依赖于数据库身份验证。

我删除了“Integrated Security=True”部分,它工作得很好:)

于 2012-05-18T22:44:19.173 回答
0

重新启动计算机对我有用。

在显示此消息时,我没有发现我的计算机 [Windows 10] 和测试服务器之间存在任何差异,其中应用程序以相同的配置部署并且在那里正常工作并使用相同的数据库。这意味着问题可能未连接到测试服务器上运行的数据库。

值得一提的是,在重新启动时有一些 Windows 更新挂起。

于 2016-01-14T15:30:59.040 回答