web-dev-qa-db-ja.com

プロバイダーはProviderManifestToken文字列エラーを返しませんでした

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」を作成しました。 Person ModelとContactコンテキストを含む「ContactController」を作成しようとすると、次のエラーが表示されます

「「Connect_Me.Models.Persons」のメタデータを取得できません。プロバイダーはProviderManifestToken文字列を返しませんでした」

MYSQ&MVC3 SQL接続エラー\ ProviderManifestTokenですが、MySQLを使用しています 、これは私の質問に最も近い質問です。しかし、答えは私の問題を解決しませんでした。

前もって感謝します

16
har

問題はMySQLコネクタ/ネットにありました。

以前にMySQL connector/Net 6.3.5を使用し、それをアンインストールしてMySQL connector/Net 6.5.4をインストールした後、問題は修正されました。最新のコネクタは http://www.mysql.com/products/connector/ で見つけることができます

2
har

数人にとってこれは非常に基本的なことですが、使用する接続文字列をEFが見つけられない場合にもこの例外がスローされます。多層アプリケーションで作業している場合は、データアクセスコードを含むクラスライブラリではなく、接続文字列がクライアントアプリケーションに追加されていることを確認してください。ちょうど私の2セント。

21
user1843594

SQLサーバーが実際にダウンしているときにこのエラーが発生しました。そのため、SQLサーバーが稼働していることを確認してください。

10
erdal

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" />
1
Ajay Suwalka

これは回答されますが、同じ問題が発生し、接続文字列にあった場合は、本当に使うべきではなかったときに、「統合セキュリティ」という部分がありました。データベース認証に頼っていました。

「Integrated Security = True」部分を削除し、完全に機能しました:)

0
Emad Alashi

接続文字列にエラーがある可能性があります。上記のログインを使用してDBインスタンスに接続しようとしましたか。接続文字列を変更してみてください

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

sQLサーバーを使用している場合は上記を使用し、SQLエクスプレスを使用している場合は以下を使用します

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

コンピューターを再起動するとうまくいきました。

このメッセージが表示されている間、コンピューター[Windows 10]とアプリケーションが同じ構成でデプロイされ、そこで正しく動作し、同じデータベースを使用するテストサーバーとの間に違いは見つかりませんでした。これは、問題がおそらくテストサーバーで実行されているデータベースに接続されていなかったことを意味します。

言及する価値があるのは、再起動中に保留中のいくつかのWindowsアップデートがあったことです。

0
Martin Staufcik

また、 MySql.Data.Entity (最新バージョンは6.10.XandMySql.Data (最新バージョンは8.0.X)。これらのバージョン番号は一致する必要があります。 MySql.Data.EntityFramework MySql.Dataバージョン8.0以降を含むパッケージ、およびMySql.Data.Entityバージョン6.10以前のパッケージ。

このブログ投稿にはさらに多くの詳細があります: https://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken

0
Tim Cooke