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