Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 19035|Svar: 0

[Løst] . .NET MySQL Connector konflikter DbProviderFactories (.NET MySQL Connector konflikter med DbP...

[Kopier link]
Opslået den 2020-11-11 09:11:52 | | |
Dette indlæg blev sidst redigeret af QWERTYU den 2020-11-11 kl. 09:14

Scenarie:
Åbn et .NET-projekt ved hjælp af MySQL-databasen og installer det i det lokale udviklingsmiljø.NET MySQL connector, alt fungerer fint, men når det frigives til iis, er programmet unormalt, og fejlmeddelelsen lyder som følger:
Undtagelsesinformation:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> undtagelsesinformation: Den ADO.NET-udbyder med det faste navn "MySql.Data.MySqlClient" er ikke registreret i computer- eller applikationsprofilen eller kan ikke indlæses. For mere information, se Interne undtagelser.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Find problemet:
Fandt ud af, at serveren ikke er installeret.NET MySQL connector, fordi mysql bruger Alibaba Clouds cloud-database, er der også flere servere for at undgå installation på hver server.NET MySQL connector,For at gøre dette sørgede jeg for at sætte MySQL-referencerne til "local copy", så jeg kunne kopiere dem til bin-mappen og tilføje følgende til min app.config:
Efter at have tilføjet ovenstående konfiguration fungerer det fint på serveren, og jeg kan deploye applikationen uden at installere MySQL-connectoren på serveren, men nu har jeg et problem på min lokale udviklingsmaskine (med MySQL-connectoren installeret), og jeg får denne fejl, når jeg prøver EF-forbindelse:
Undtagelsesinformation:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> undtagelsesinformation: Den ADO.NET-udbyder med det faste navn "MySql.Data.MySqlClient" er ikke registreret i computer- eller applikationsprofilen eller kan ikke indlæses. For mere information, se Interne undtagelser.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Prøv handlingen:
Hvis jeg kommenterer den XML, der er tilføjet ovenfor i konfigurationen, forsvinder fejlen. Dette kan skyldes, at den samme driver er installeret på systemet og er placeret i machine.config.
Den endelige løsning og hvorfor:
Prøv at tilføje <remove invariant="MySql.Data.MySqlClient" /> i din webkonfiguration. På din maskine har du allerede installeret MySQL-connectoren, og du ændrer din machine.config ved at tilføje en i DbProviderFactories. Så hvis du lægger en anden MySQL-dataudbyder ind i din web.config, er det som om, du har forsøgt at registrere det samme to gange.











Tidligere:C# lægger referencebiblioteks-DLL'er i undermapper via probing
Næste:ASP.NET Core Link Tracing (3) SkyAPM er baseret på Consuls dynamiske konfiguration
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com