Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 19035|Répondre: 0

[Résolu] . Conflits du connecteur .NET MySQL DbProviderFactories (Conflits du connecteur .NET MySQL DbP...

[Copié le lien]
Publié le 11-11-2020 09:11:52 | | |
Ce post a été modifié pour la dernière fois par QWERTYU le 11-11-2020 à 09:14

Scénario :
Ouvrez un projet .NET en utilisant la base de données mysql et installez-le dans l’environnement de développement localConnecteur .NET MySQL, tout fonctionne bien, mais lorsqu’il est lancé sur IIS, le programme est anormal et le message d’erreur est le suivant :
Informations sur les exceptions :
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informations d’exception : Le fournisseur ADO.NET avec le nom fixe « MySql.Data.MySqlClient » n’est pas enregistré dans le profil ordinateur ou application et ne peut pas être chargé. Pour plus d’informations, voir Exceptions internes.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Trouvez le problème :
J’ai constaté que le serveur n’est pas installéconnecteur .NET MySQL, parce que mysql utilise la base de données cloud d’Alibaba Cloud, il y a aussi plusieurs serveurs, afin d’éviter l’installation sur chaque serveurconnecteur .NET MySQL,Pour ce faire, j’ai pris soin de définir les références MySQL sur « copie locale » afin de pouvoir les copier dans le dossier bac et ajouter ce qui suit à mon app.config :
Après avoir ajouté la configuration ci-dessus, ça fonctionne bien sur le serveur et je peux déployer l’application sans installer le connecteur MySQL sur le serveur, mais maintenant j’ai un problème sur ma machine de développement locale (avec le connecteur MySQL installé) et j’obtiens cette erreur quand j’essaie la connexion EF :
Informations sur les exceptions :
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informations d’exception : Le fournisseur ADO.NET avec le nom fixe « MySql.Data.MySqlClient » n’est pas enregistré dans le profil ordinateur ou application et ne peut pas être chargé. Pour plus d’informations, voir Exceptions internes.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Essayez l’action :
Si je commente le XML ajouté ci-dessus dans la configuration, l’erreur disparaît. Cela peut s’expliquer par le fait que le même pilote est installé sur le système et se trouve dans machine.config.
La solution finale et pourquoi :
Essayez d’ajouter <remove invariant="MySql.Data.MySqlClient » /> dans votre webconfig. Sur votre machine, vous avez déjà le connecteur MySQL installé, et vous modifiez votre machine.config en en ajoutant un dans DbProviderFactories. Donc, si vous mettez un autre fournisseur de données MySQL dans votre web.config, c’est comme si vous aviez essayé d’enregistrer la même chose deux fois.











Précédent:C# place les DLL de bibliothèques de référence dans des sous-dossiers via le sondage
Prochain:ASP.NET Tracing de liaison centrale (3) SkyAPM est basé sur la configuration dynamique de Consul
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com