Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 19035|Svare: 0

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

[Kopier lenke]
Publisert 2020-11-11 09:11:52 | | |
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.











Foregående:C# legger referansebibliotek-DLL-er i undermapper via probing
Neste:ASP.NET Core Link Tracing (3) SkyAPM er basert på Consul dynamisk konfigurasjon
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com