Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19035|Răspunde: 0

[Rezolvat] . .NET MySQL Connector Conflicte DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Copiază linkul]
Postat la 2020-11-11 09:11:52 | | |
Această postare a fost editată ultima dată de QWERTYU pe 2020-11-11 09:14

Scenariu:
Deschide un proiect .NET folosind baza de date mysql și instalează-l în mediul local de dezvoltare.NET MySQL, totul funcționează bine, dar când este lansat pe IIS, programul este anormal și mesajul de eroare este următorul:
Informații despre excepții:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informații excepționale: Furnizorul ADO.NET cu numele fix "MySql.Data.MySqlClient" nu este înregistrat în profilul calculatorului sau al aplicației și nu poate fi încărcat. Pentru mai multe informații, vezi Excepții interne.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Găsește problema:
Am constatat că serverul nu este instalat.NET MySQL, deoarece MySQL folosește baza de date cloud a Alibaba Cloud, există și mai multe servere, pentru a evita instalarea pe fiecare server.NET MySQL,Pentru a face asta, m-am asigurat să setez referințele MySQL pe "copiere locală" ca să le pot copia în folderul bin și să adaug următoarele în app.config-ul meu:
După ce am adăugat configurația de mai sus, funcționează bine pe server și pot implementa aplicația fără să instalez conectorul MySQL pe server, dar acum am o problemă pe calculatorul meu local de dezvoltare (cu conectorul MySQL instalat) și primesc această eroare când încerc conexiunea EF:
Informații despre excepții:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informații excepționale: Furnizorul ADO.NET cu numele fix "MySql.Data.MySqlClient" nu este înregistrat în profilul calculatorului sau al aplicației și nu poate fi încărcat. Pentru mai multe informații, vezi Excepții interne.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Încearcă acțiunea:
Dacă comentez XML-ul adăugat mai sus în configurație, eroarea dispare. Acest lucru se poate datora faptului că același driver este instalat pe sistem și se află în machine.config.
Soluția finală și de ce:
Încearcă să adaugi <remove invariant="MySql.Data.MySqlClient" /> în configurația ta web. Pe calculatorul tău, ai deja conectatorul MySQL instalat și modifici machine.config-ul adăugând unul în DbProviderFactories. Așadar, dacă pui un alt furnizor de date MySQL în web.config-ul tău, e ca și cum ai încerca să înregistrezi același lucru de două ori.











Precedent:C# pune DLL-uri de biblioteci de referință în subfoldere prin sondare
Următor:ASP.NET Core Link Tracing (3) SkyAPM se bazează pe configurația dinamică Consul
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com