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