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