Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19035|Odpoveď: 0

[Vyriešené] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Kopírovať odkaz]
Zverejnené 11.11.2020 09:11:52 | | |
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.











Predchádzajúci:C# umiestňuje referenčné knižnice DLL do podpriečinkov pomocou sondovania
Budúci:ASP.NET Core Link Tracing (3) SkyAPM je založený na dynamickej konfigurácii Consul
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com