Dette innlegget ble sist redigert av QWERTYU 11.11.2020 kl. 09:14
Scenario: Åpne et .NET-prosjekt med MySQL-databasen og installer det i det lokale utviklingsmiljøet.NET MySQL connector, alt fungerer fint, men når det frigjøres til iis, er programmet unormalt og feilmeldingen er som følger:
Unntaksinformasjon: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> unntaksinformasjon: Den ADO.NET leverandøren med det faste navnet "MySql.Data.MySqlClient" er ikke registrert i datamaskin- eller applikasjonsprofilen eller kan ikke lastes inn. For mer informasjon, se Interne unntak.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Finn problemet: Fant ut at serveren ikke er installert.NET MySQL connector, fordi mysql bruker Alibaba Clouds sky-database, finnes det også flere servere for å unngå installasjon på hver server.NET MySQL connector,For å gjøre dette sørget jeg for å sette MySQL-referansene til "lokal kopi" slik at jeg kunne kopiere dem til bin-mappen og legge til følgende i app.config:
Etter å ha lagt til konfigurasjonen ovenfor, fungerer det fint på serveren, og jeg kan distribuere applikasjonen uten å installere MySQL-connectoren på serveren, men nå har jeg et problem på min lokale utviklermaskin (med MySQL-connectoren installert) og jeg får denne feilmeldingen når jeg prøver EF-tilkobling: Unntaksinformasjon: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> unntaksinformasjon: Den ADO.NET leverandøren med det faste navnet "MySql.Data.MySqlClient" er ikke registrert i datamaskin- eller applikasjonsprofilen eller kan ikke lastes inn. For mer informasjon, se Interne unntak. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Prøv actionen: Hvis jeg kommenterer ut XML-en som er lagt til ovenfor i konfigurasjonen, forsvinner feilen. Dette kan skyldes at samme driver er installert på systemet og ligger i machine.config. Den endelige løsningen og hvorfor:
Prøv å legge til <fjern invariant="MySql.Data.MySqlClient" /> i webkonfigurasjonen din. På maskinen din har du allerede installert MySQL-koblingen, og du endrer machine.config ved å legge til en i DbProviderFactories. Så hvis du legger inn en annen MySQL-dataleverandør i web.config-en din, er det som om du har prøvd å registrere det samme to ganger.
|