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