Tento príspevok naposledy upravil QWERTYU 11.11.2020 09:14
Scenár: Otvorte .NET projekt pomocou databázy mysql a nainštalujte ho v lokálnom vývojovom prostredí.NET MySQL konektor, všetko funguje bez problémov, ale keď sa program uvoľní do iis, je abnormálny a chybová správa je nasledovná:
Informácie o výnimkách: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informácie o výnimke: Poskytovateľ ADO.NET s pevným názvom "MySql.Data.MySqlClient" nie je registrovaný v počítači ani aplikačnom profile alebo ho nie je možné načítať. Pre viac informácií pozri Interné výnimky.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Nájdite problém: Zistil som, že server nie je nainštalovaný.NET MySQL konektor, pretože mysql využíva cloudovú databázu Alibaba Cloud, existuje aj viacero serverov, aby sa predišlo inštalácii na každom serveri.NET MySQL connector,Aby som to dosiahol, nastavil som MySQL referencie na "lokálnu kópiu", aby som ich mohol skopírovať do priečinka bin a pridať nasledujúce do môjho app.config:
Po pridaní vyššie uvedenej konfigurácie to na serveri funguje bez problémov a môžem aplikáciu nasadiť bez inštalácie MySQL konektora na serveri, ale teraz mám problém na mojom lokálnom vývojárskom počítači (s nainštalovaným MySQL konektorom) a keď skúšam EF pripojenie, dostávam túto chybu: Informácie o výnimkách: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informácie o výnimke: Poskytovateľ ADO.NET s pevným názvom "MySql.Data.MySqlClient" nie je registrovaný v počítači ani aplikačnom profile alebo ho nie je možné načítať. Pre viac informácií pozri Interné výnimky. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Vyskúšajte akciu: Ak v konfigurácii okomentujem XML pridané vyššie, chyba zmizne. Môže to byť preto, že rovnaký ovládač je nainštalovaný v systéme a nachádza sa v machine.config. Konečné riešenie a prečo:
Skúste pridať <remove invariant="MySql.Data.MySqlClient" /> do vašej webconfig. Na vašom počítači už máte nainštalovaný MySQL konektor a upravujete svoj machine.config pridaním jedného v DbProviderFactories. Takže ak do web.config pridáte ďalšieho poskytovateľa MySql dát, je to, akoby ste sa pokúsili zaregistrovať tú istú vec dvakrát.
|