Dit bericht is voor het laatst bewerkt door QWERTYU op 11-11-2020 09:14
Scenario: Open een .NET-project met de MySQL-database en installeer het in de lokale ontwikkelomgeving.NET MySQL connector, werkt alles prima, maar wanneer het wordt uitgebracht naar iis, is het programma abnormaal en is het foutbericht als volgt:
Uitzonderingsinformatie: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> uitzonderingsinformatie: De ADO.NET provider met de vaste naam "MySql.Data.MySqlClient" is niet geregistreerd in het computer- of applicatieprofiel of kan niet worden geladen. Voor meer informatie, zie Interne Uitzonderingen.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Vind het probleem: Ontdekte dat de server niet geïnstalleerd is.NET MySQL connector, omdat MySQL gebruikmaakt van de clouddatabase van Alibaba Cloud, zijn er ook meerdere servers om installatie op elke server te voorkomen.NET MySQL connector,Om dit te doen, heb ik ervoor gezorgd dat ik de MySQL-referenties op "local copy" zette, zodat ik ze naar de bin-map kon kopiëren en het volgende aan mijn app.config kon toevoegen:
Na het toevoegen van bovenstaande configuratie werkt het prima op de server en kan ik de applicatie uitrollen zonder de MySQL-connector op de server te installeren, maar nu heb ik een probleem op mijn lokale ontwikkelaarsmachine (met de MySQL-connector geïnstalleerd) en krijg ik deze foutmelding als ik EF-verbinding probeer: Uitzonderingsinformatie: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> uitzonderingsinformatie: De ADO.NET provider met de vaste naam "MySql.Data.MySqlClient" is niet geregistreerd in het computer- of applicatieprofiel of kan niet worden geladen. Voor meer informatie, zie Interne Uitzonderingen. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Probeer de actie: Als ik de hierboven toegevoegde XML in de configuratie commentaar, verdwijnt de fout. Dit kan komen doordat dezelfde driver op het systeem is geïnstalleerd en zich bevindt in machine.config. De uiteindelijke oplossing en waarom:
Probeer <remove invariant="MySql.Data.MySqlClient" /> toe te voegen aan je webconfig. Op je machine heb je de MySQL-connector al geïnstalleerd, en je past je machine.config aan door er een toe te voegen in DbProviderFactories. Dus als je een andere MySQL-dataprovider in je web.config zet, is het alsof je hetzelfde twee keer hebt geprobeerd te registreren.
|