Ezt a bejegyzést utoljára a QWERTYU szerkesztette: 2020-11-11, 09:14
Forgatókönyv: Nyiss ki egy .NET projektet a mysql adatbázis segítségével, és telepítsd a helyi fejlesztői környezetbe.NET MySQL csatlakozó minden rendben működik, de amikor kiadják az iis-re, a program rendellenes, és a hibaüzenet a következő:
Kivételinformációk : System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> kivételinformáció: A "MySql.Data.MySqlClient" fix nevű ADO.NET szolgáltató nincs regisztrálva a számítógépben vagy alkalmazásprofilban, vagy nem tölthető. További információért lásd: Belső kivételek.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Találd meg a problémát: Megállapítottam, hogy a szerver nincs telepítve.NET MySQL csatlakozó, mivel a mysql az Alibaba Cloud felhőadatbázisát használja, több szerver is létezik, hogy elkerüljék a telepítést minden szerveren.NET MySQL connector,Ehhez gondoskodtam róla, hogy a MySQL hivatkozásokat "helyi másolatnak" állítsam, hogy be tudjam másolni őket a bin mappába, és hozzáadni a következőket az app.config-omhoz:
A fenti konfiguráció hozzáadása után a szerveren jól működik, és be tudom telepíteni az alkalmazást anélkül, hogy telepítenék a MySQL csatlakozót a szerverre, de most a helyi fejlesztő gépemben (a MySQL csatlakozóval van telepítve), és ezt a hibát kapom, amikor EF kapcsolatot próbálok: Kivételinformációk : System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> kivételinformáció: A "MySql.Data.MySqlClient" fix nevű ADO.NET szolgáltató nincs regisztrálva a számítógépben vagy alkalmazásprofilban, vagy nem tölthető. További információért lásd: Belső kivételek. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Próbáld ki az akciót: Ha kommentelek a fent hozzáadott XML-t a konfigurációban, a hiba eltűnik. Ez azért lehet azért, mert ugyanaz az illesztőprogram telepítve van a rendszeren, és a machine.config oldalon található. A végső megoldás és miért:
Próbáld meg hozzáadni <remove invariant="MySql.Data.MySqlClient" /> a webconfig-edben. A gépedre már telepítve van a MySql csatlakozó, és módosítod a machine.config-odat azzal, hogy hozzáadsz egyet a DbProviderFactories-ben. Tehát ha egy másik MySQL adatszolgáltatót teszsz a web.config-ba, az olyan, mintha kétszer is megpróbálnád ugyanazt regisztrálni.
|