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を使用しています 、これは私の質問に最も近い質問です。しかし、答えは私の問題を解決しませんでした。
前もって感謝します
問題はMySQLコネクタ/ネットにありました。
以前にMySQL connector/Net 6.3.5を使用し、それをアンインストールしてMySQL connector/Net 6.5.4をインストールした後、問題は修正されました。最新のコネクタは http://www.mysql.com/products/connector/ で見つけることができます
数人にとってこれは非常に基本的なことですが、使用する接続文字列をEFが見つけられない場合にもこの例外がスローされます。多層アプリケーションで作業している場合は、データアクセスコードを含むクラスライブラリではなく、接続文字列がクライアントアプリケーションに追加されていることを確認してください。ちょうど私の2セント。
SQLサーバーが実際にダウンしているときにこのエラーが発生しました。そのため、SQLサーバーが稼働していることを確認してください。
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" />
これは回答されますが、同じ問題が発生し、接続文字列にあった場合は、本当に使うべきではなかったときに、「統合セキュリティ」という部分がありました。データベース認証に頼っていました。
「Integrated Security = True」部分を削除し、完全に機能しました:)
接続文字列にエラーがある可能性があります。上記のログインを使用して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"/>
コンピューターを再起動するとうまくいきました。
このメッセージが表示されている間、コンピューター[Windows 10]とアプリケーションが同じ構成でデプロイされ、そこで正しく動作し、同じデータベースを使用するテストサーバーとの間に違いは見つかりませんでした。これは、問題がおそらくテストサーバーで実行されているデータベースに接続されていなかったことを意味します。
言及する価値があるのは、再起動中に保留中のいくつかのWindowsアップデートがあったことです。
また、 MySql.Data.Entity
(最新バージョンは6.10.X
)andMySql.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