web-dev-qa-db-fra.com

Le fournisseur n'a pas renvoyé d'erreur de chaîne ProviderManifestToken

J'essaie de créer une application Web en utilisant ASP.Net MVC3, Entity Framework et MySQL.

J'ai ajouté le code suivant à mon fichier Web.Config.

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

  </connectionStrings>

J'ai également créé le modèle "Personne", "ContactContext" dans le projet "Contact_Me". Lorsque j'essaie de créer un "ContactController" comprenant le modèle de personne et le contexte de contact, cela me donne l'erreur suivante 

"Impossible de récupérer les métadonnées pour" Connect_Me.Models.Persons ". Le fournisseur N'a pas renvoyé de chaîne ProviderManifestToken"

Erreur de connexion SQL MYSQ & MVC3\ProviderManifestToken mais j’utilise MySQL , c’est la question la plus proche de la mienne. Mais la réponse n'a pas résolu mon problème.

Merci d'avance

16
har

Le problème était avec le connecteur MySQL/Net. 

J'ai déjà utilisé le connecteur MySQL/Net 6.3.5 et après l'avoir désinstallé et installé le connecteur MySQL/Net 6.5.4, le problème a été résolu. Vous trouverez les derniers connecteurs sur http://www.mysql.com/products/connector/

2
har

Je sais que cela peut être très élémentaire pour quelques-uns d'entre vous, mais cette exception est également levée dans les cas où EF est incapable de localiser une chaîne de connexion à utiliser . Si vous travaillez dans une application multicouche, Assurez-vous que la chaîne de connexion est ajoutée à votre application client, à la place de la bibliothèque de classes qui contient votre code d'accès aux données . Seulement mes 2 centimes.

20
user1843594

J'ai eu cette erreur quand mon serveur SQL était en panne. Assurez-vous donc que votre serveur SQL est opérationnel.

10
erdal

Parfois, ce problème est dû à sslmode également. Pour moi, la solution consistait à ajouter sslmode = None à la chaîne de connexion

Je devais apporter un petit changement à ma chaîne de connexion à partir de 

<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

Même si cela a été résolu, j'ai rencontré le même problème et le cas échéant, c'était dans la chaîne de connexion; J'ai eu la partie "Sécurité intégrée" alors que je n'aurais vraiment pas dû l'utiliser; Je m'appuyais sur l'authentification de la base de données.

J'ai enlevé la partie "Integrated Security = True" et cela a parfaitement fonctionné :)

0
Emad Alashi

Peut-être que l'erreur est dans votre chaîne de connexion. Avez-vous essayé de vous connecter à votre instance de base de données en utilisant la connexion ci-dessus. Essayez de modifier la chaîne de connexion. 

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

utiliser ci-dessus si vous utilisez SQL Server, sinon si vous utilisez SQL Express, utilisez ci-dessous un 

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

Redémarrer l'ordinateur a fonctionné pour moi. 

Pendant que ce message était affiché, je n’ai trouvé aucune différence entre mon ordinateur [Windows 10] et le serveur de test où l’application était déployée avec la même configuration, y fonctionnait correctement et utilisait la même base de données. Cela signifie que le problème n'était probablement pas connecté à la base de données exécutée sur le serveur de test.

Il est à noter que certaines mises à jour Windows étaient en attente lors du redémarrage.

0
Martin Staufcik

Vous pouvez également obtenir cette erreur si vous mettez à niveau des références Nuget dans un projet EntityFramework utilisant MySql.Data.Entity (la dernière version est 6.10.X) etMySql.Data (la dernière version est 8.0.X). Ces numéros de version doivent correspondre. Vous devez utiliser le package MySql.Data.EntityFramework avec MySql.Data version 8.0 et ultérieure et le package MySql.Data.Entity avec les versions 6.10 et antérieures.

Il y a beaucoup plus de détails dans cet article: https://davidsekar.com/asp-net/mysql-error-the-provider-did-not-return-a-providermanifesttoken

0
Tim Cooke