Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19035|Svar: 0

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

[Kopiera länk]
Publicerad den 2020-11-11 09:11:52 | | |
Detta inlägg redigerades senast av QWERTYU den 2020-11-11 09:14

Scenario:
Öppna ett .NET-projekt med MySQL-databasen och installera det i den lokala utvecklingsmiljön.NET MySQL connector, allt fungerar som det ska, men när det släpps till iis är programmet onormalt och felmeddelandet är följande:
Undantagsinformation:
System.Data.Entitet.Infrastruktur.BeroendeResolution.DefaultProviderFactoryResolver. <GetService>b__0---> undantagsinformation: Den ADO.NET leverantören med det fasta namnet "MySql.Data.MySqlClient" är inte registrerad i datorns eller applikationsprofilen eller kan inte laddas. För mer information, se Interna undantag.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Hitta problemet:
Upptäckte att servern inte är installerad.NET MySQL connector, eftersom mysql använder Alibaba Clouds molndatabas, finns det också flera servrar för att undvika installation på varje server.NET MySQL connector,För att göra detta såg jag till att sätta MySQL-referenserna till "local copy" så att jag kunde kopiera dem till bin-mappen och lägga till följande i min app.config:
Efter att ha lagt till ovanstående konfiguration fungerar det bra på servern och jag kan distribuera applikationen utan att installera MySQL-kontakten på servern, men nu har jag ett problem på min lokala utvecklingsmaskin (med MySQL-kontakten installerad) och jag får detta felmeddelande när jag försöker med EF-anslutning:
Undantagsinformation:
System.Data.Entitet.Infrastruktur.BeroendeResolution.DefaultProviderFactoryResolver. <GetService>b__0---> undantagsinformation: Den ADO.NET leverantören med det fasta namnet "MySql.Data.MySqlClient" är inte registrerad i datorns eller applikationsprofilen eller kan inte laddas. För mer information, se Interna undantag.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Prova actionen:
Om jag kommenterar ut XML:en som lagts till ovan i konfigurationen försvinner felet. Detta kan bero på att samma drivrutin är installerad på systemet och finns i machine.config.
Den slutgiltiga lösningen och varför:
Försök lägga till <remove invariant="MySql.Data.MySqlClient" /> i din webkonfiguration. På din dator har du redan MySQL-kontakten installerad, och du ändrar din machine.config genom att lägga till en i DbProviderFactories. Så om du lägger in en annan MySQL-dataleverantör i din web.config är det som om du försökt registrera samma sak två gånger.











Föregående:C# placerar referensbiblioteks-DLL:er i undermappar via probing
Nästa:ASP.NET Core Link Tracing (3) SkyAPM baseras på Consuls dynamiska konfiguration
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com