Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19035|Odpověď: 0

[Vyřešeno] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Kopírovat odkaz]
Zveřejněno 11. 11. 2020 09:11:52 | | |
Tento příspěvek byl naposledy upraven QWERTYU dne 11. 11. 2020 v 09:14

Scénář:
Otevřete .NET projekt pomocí databáze mysql a nainstalujte jej do lokálního vývojového prostředí.NET MySQL konektor, vše funguje bez problémů, ale když je program uvolněn na iis, je abnormální a chybová zpráva je následující:
Informace o výjimkách:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informace o výjimkách: Poskytovatel ADO.NET s pevným názvem "MySql.Data.MySqlClient" není registrován v profilu počítače ani aplikace nebo jej nelze načíst. Pro více informací viz Interní výjimky.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Najděte problém:
Zjistil jsem, že server není nainstalovaný.NET MySQL konektor, protože mysql využívá cloudovou databázi Alibaba Cloud, existuje také více serverů, aby se zabránilo instalaci na každém serveru.NET MySQL connector,K tomu jsem si dal záležet, abych MySQL odkazy nastavil na "lokální kopii", abych je mohl zkopírovat do složky bin a přidat následující do svého app.config:
Po přidání výše uvedené konfigurace to na serveru funguje bez problémů a mohu aplikaci nasadit bez instalace MySQL konektoru na server, ale teď mám problém na svém lokálním vývojovém počítači (s nainstalovaným MySQL konektorem) a při zkoušce EF připojení dostávám tuto chybu:
Informace o výjimkách:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informace o výjimkách: Poskytovatel ADO.NET s pevným názvem "MySql.Data.MySqlClient" není registrován v profilu počítače ani aplikace nebo jej nelze načíst. Pro více informací viz Interní výjimky.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Vyzkoušejte akci:
Když do konfigurace zmíním XML přidané výše, chyba zmizí. Může to být proto, že stejný ovladač je nainstalován v systému a nachází se v machine.config.
Konečné řešení a proč:
Zkuste přidat <remove invariant="MySql.Data.MySqlClient" /> do své webkonfigurace. Na vašem počítači už máte nainstalovaný MySql konektor a upravujete svůj machine.config přidáním jednoho do DbProviderFactories. Takže pokud do web.config vložíte jiného poskytovatele MySql dat, je to, jako byste se pokusili zaregistrovat stejnou věc dvakrát.











Předchozí:C# umisťuje referenční knihovní DLL do podsložek pomocí sondování
Další:ASP.NET Core Link Tracing (3) SkyAPM je založen na dynamické konfiguraci Consul
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com