web-dev-qa-db-fra.com

Le fournisseur n'a pas renvoyé une chaîne ProviderManifestToken Entity Framework

Une erreur s'est produite lors de l'obtention des informations sur le fournisseur à partir de la base de données. Cela peut être dû à Entity Framework utilisant une chaîne de connexion incorrecte. Vérifiez les exceptions internes pour plus de détails et assurez-vous que la chaîne de connexion est correcte.

Exception interne: {"The provider did not return a ProviderManifestToken string."}

J'ai cherché d'autres discussions car il y en a beaucoup avec des erreurs similaires, mais je n'arrive pas à trouver de solution. 

J'utilise VS2012 Professional et SQL Server 2012. Je peux me connecter au serveur à l'aide de l'Explorateur de serveurs à l'aide de l'authentification Windows. Je construis une application de formulaires Web avec plusieurs niveaux. L'un d'eux contient mon niveau de structure Entity qui contient ma classe de contexte. 

<?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>

Voici à quoi ressemble le fichier app.config dans la couche de bibliothèque de classe Entity Framework.

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
</configuration>

De plus, j'ai essayé de changer le type app.config defaultConnectionFactory en 

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">

mais cela n'a rien changé.

Je ne suis pas vraiment sûr de ce que l'un des changements que je fais signifie même qui m'inquiète. Bien sûr, j’aurais pu trouver la solution en ligne et régler mon problème, mais j’aimerais vraiment comprendre le web.config et sa signification. En plus de trouver une solution à ce problème, quelqu'un peut-il m'orienter dans la bonne direction pour apprendre web.configs?

Merci d'avance pour votre aide.

17
Leyth G

Dans mon cas, c'était mon instance SQL Server qui ne fonctionnait pas. J'ai simplement commencé le service et tout a bien fonctionné. J'espère que cela aide quelqu'un sur la route.

8
dotNET

Voici une autre cause possible:
J'ai à la fois mon serveur HTTP (ASP.NET) et mon serveur MySQL/Aurora sur AWS (compris qu'AWS ne faisait pas partie des commentaires de l'OP).
L'adresse IP de mon bureau (en fait, de notre bâtiment) était inscrite sur la liste blanche du groupe de sécurité du serveur MySQL/Aurora, donc tout fonctionnait parfaitement pour le développement.
Mais l'adresse IP du serveur ASP.NET était pas inscrite sur la liste blanche pour l'instance MySQL/Aurora, ainsi la demande de connexion EF du serveur ASP était rejetée et que était à l'origine de l'exception notée au sommet de ce fil.
Esoteric, mais peut-être que cela aide quelqu'un.

3
dlchambers

Eh bien je l'ai réparé.

Juste besoin de mettre "." pour localmachine dans la source de données, comme suit:

<add name="MYSQLSERVER"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=.\MYSQLSERVER;Trusted_Connection=true"></add>    
</connectionStrings>
3
Leyth G

J'ai eu le même problème, réinstaller Npgsql avec le gestionnaire de paquets a fait l'affaire. Semblait être un problème persistant. 

0
Kirsy92

Dans mon cas, le paramètre était v12.0, j'ai changé pour v11.0 et cela fonctionne

0
Leonidas Menendez

je rencontre ce problème lorsque j'essaie de me connecter à mysql, la raison en est que j'oublie d'ajouter le "mot de passe" dans "connectionStrings"

0
user5091911

J'ai également fait face à cette erreur et je résous le problème de la dégradation de ces paquets NuGet

MySql.Data - 6.9.12

MySQL.Data.Entity - 6.8.8

c'est ma référence _ URL à laquelle j'ai fait référence 

0
kgdc

..et FINALLY (?!?) n'oubliez pas de construire votre projet avec la case "Préférez 32 bits" cochée, cela éliminera le bogue connu qui génère ce message d'erreur (qui a le message d'exception interne = "débordement arithémique").

0
Richard Hammond

Pour moi, il utilisait une double barre oblique inverse entre le serveur et l'instance, telle que.\SQLExPRESS; ... etc.

La correction était d'utiliser.\SQLEXPRESS

j'espère que ça aide quelqu'un.

0
Shadi Namrouti