Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 19035|Antwort: 0

[Gelöst] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Link kopieren]
Veröffentlicht am 11.11.2020, 09:11:52 | | |
Dieser Beitrag wurde zuletzt von QWERTYU am 11.11.2020 um 09:14 Uhr bearbeitet

Szenario:
Öffnen Sie ein .NET-Projekt mit der MySQL-Datenbank und installieren Sie es in der lokalen Entwicklungsumgebung.NET MySQL Connector, funktioniert alles einwandfrei, aber wenn es auf iis freigegeben wird, ist das Programm abnormal und die Fehlermeldung lautet wie folgt:
Ausnahmeinformation:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> Ausnahmeinformationen: Der ADO.NET Anbieter mit dem festen Namen "MySql.Data.MySqlClient" ist im Computer- oder Anwendungsprofil nicht registriert oder kann nicht geladen werden. Weitere Informationen finden Sie unter Interne Ausnahmen.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Finde das Problem:
Ich habe festgestellt, dass der Server nicht installiert ist.NET MySQL Connector, da mysql die Cloud-Datenbank von Alibaba Cloud nutzt, gibt es auch mehrere Server, um eine Installation auf jedem Server zu vermeiden.NET MySQL Connector,Dafür habe ich darauf geachtet, die MySQL-Referenzen auf "local copy" zu setzen, damit ich sie in den bin-Ordner kopieren und Folgendes in meine app.config hinzufügen kann:
Nachdem ich die obige Konfiguration hinzugefügt habe, funktioniert es auf dem Server einwandfrei und ich kann die Anwendung ausrollen, ohne den MySQL-Connector auf dem Server installieren zu müssen, aber jetzt habe ich ein Problem auf meinem lokalen Entwicklungsrechner (mit installiertem MySQL-Connector) und ich bekomme diesen Fehler, wenn ich EF-Verbindung versuche:
Ausnahmeinformation:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> Ausnahmeinformationen: Der ADO.NET Anbieter mit dem festen Namen "MySql.Data.MySqlClient" ist im Computer- oder Anwendungsprofil nicht registriert oder kann nicht geladen werden. Weitere Informationen finden Sie unter Interne Ausnahmen.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Probier die Action:
Wenn ich die oben hinzugefügte XML in der Konfiguration kommentiere, verschwindet der Fehler. Das könnte daran liegen, dass derselbe Treiber auf dem System installiert ist und sich in machine.config befindet.
Die endgültige Lösung und warum:
Versuche, <remove invariant="MySql.Data.MySqlClient" /> in deiner Webconfig hinzuzufügen. Auf deinem Rechner hast du bereits den MySQL-Connector installiert und modifizierst deinen machine.config, indem du einen in DbProviderFactories hinzufügst. Wenn du also einen anderen MySQL-Datenanbieter in deine web.config einfügst, ist es, als hättest du versucht, dasselbe zweimal zu registrieren.











Vorhergehend:C# legt Referenzbibliotheks-DLLs per Probing in Unterordner
Nächster:ASP.NET Core Link Tracing (3) SkyAPM basiert auf der dynamischen Consul-Konfiguration
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com