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