Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 19035|Risposta: 0

[Risolto] . .NET MySQL Connector Conflitti DbProviderFactories (.NET MySQL Connector Conflitti DbP...

[Copiato link]
Pubblicato il 11-11-2020 09:11:52 | | |
Questo post è stato modificato l'ultima volta da QWERTYU il 11-11-2020 alle 09:14

Scenario:
Apri un progetto .NET usando il database mysql e installalo nell'ambiente di sviluppo locale.NET MySQL, tutto funziona bene, ma quando viene rilasciato su IIS, il programma è anomalo e il messaggio di errore è il seguente:
Informazioni sulle eccezioni:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informazioni di eccezione: Il fornitore ADO.NET con il nome fisso "MySql.Data.MySqlClient" non è registrato nel computer o nel profilo applicativo o non può essere caricato. Per ulteriori informazioni, vedi Eccezioni interne.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Trova il problema:
Ho scoperto che il server non è installatoconnettore .NET MySQL, poiché mysql utilizza il database cloud di Alibaba Cloud, ci sono anche più server, per evitare l'installazione su ciascun server.NET MySQL connector,Per farlo, mi sono assicurato di impostare i riferimenti MySQL su "copia locale" così da poterli copiare nella cartella bin e aggiungere quanto segue al mio app.config:
Dopo aver aggiunto la configurazione sopra, funziona bene sul server e posso distribuire l'applicazione senza installare il connettore MySQL sul server, ma ora ho un problema sulla mia macchina di sviluppo locale (con il connettore MySQL installato) e ricevo questo errore quando provo la connessione EF:
Informazioni sulle eccezioni:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informazioni di eccezione: Il fornitore ADO.NET con il nome fisso "MySql.Data.MySqlClient" non è registrato nel computer o nel profilo applicativo o non può essere caricato. Per ulteriori informazioni, vedi Eccezioni interne.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Prova l'azione:
Se commento l'XML aggiunto sopra nella configurazione, l'errore scompare. Questo potrebbe essere dovuto al fatto che lo stesso driver è installato sul sistema ed è situato in machine.config.
La soluzione finale e perché:
Prova ad aggiungere <remove invariant="MySql.Data.MySqlClient" /> nella tua configurazione web. Sulla tua macchina hai già installato il connettore MySql e modifichi il tuo machine.config aggiungendone uno in DbProviderFactories. Quindi, se inserisci un altro provider dati MySQL nel tuo web.config, è come se avessi provato a registrare la stessa cosa due volte.











Precedente:C# inserisce le DLL delle librerie di riferimento in sottocartelle tramite sonding
Prossimo:ASP.NET Core Link Tracing (3) SkyAPM si basa sulla configurazione dinamica Consul
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com