Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 19035|Vastaus: 0

[Ratkaistu] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Kopioi linkki]
Julkaistu 2020-11-11 09:11:52 | | |
Tätä julkaisua on viimeksi muokannut QWERTYU 2020-11-11 klo 09:14

Skenaario:
Avaa .NET-projekti mysql-tietokannalla ja asenna se paikalliseen kehitysympäristöön.NET MySQL -liitin, kaikki toimii moitteettomasti, mutta kun se julkaistaan iis:lle, ohjelma on epänormaali ja virheilmoitus on seuraava:
Poikkeustiedot:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> poikkeustiedot: ADO.NET palveluntarjoaja, jolla on kiinteä nimi "MySql.Data.MySqlClient", ei ole rekisteröity tietokoneen tai sovelluksen profiiliin eikä sitä voi ladata. Lisätietoja löytyy kohdasta Sisäiset poikkeukset.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Löydä ongelma:
Huomasin, että palvelinta ei ole asennettu.NET MySQL -liitin, koska mysql käyttää Alibaba Cloudin pilvitietokantaa, palvelimella on myös useita palvelimia, jotta jokaiselle palvelimelle ei tarvitse asentaa.NET MySQL -liitin,Tätä varten varmistin, että MySQL-viittaukset asetettiin "paikalliseksi kopioiksi", jotta voin kopioida ne bin-kansioon ja lisätä seuraavan app.config-tiedostoon:
Kun lisäsin yllä olevan konfiguraation, se toimii hyvin palvelimella ja voin ottaa sovelluksen käyttöön asentamatta MySQL-liitintä palvelimelle, mutta nyt minulla on ongelma paikallisella kehityskoneellani (MySQL-liitin asennettuna) ja saan tämän virheen, kun kokeilen EF-yhteyttä:
Poikkeustiedot:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> poikkeustiedot: ADO.NET palveluntarjoaja, jolla on kiinteä nimi "MySql.Data.MySqlClient", ei ole rekisteröity tietokoneen tai sovelluksen profiiliin eikä sitä voi ladata. Lisätietoja löytyy kohdasta Sisäiset poikkeukset.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Kokeile toimintaa:
Jos kommentoin yllä olevan XML:n konfiguraatiossa, virhe katoaa. Tämä voi johtua siitä, että sama ajuri on asennettuna järjestelmään ja löytyy machine.config-tiedostosta.
Lopullinen ratkaisu ja miksi:
Kokeile lisätä <remove invariant="MySql.Data.MySqlClient" /> webconfigiin. Koneellasi MySql-liitin on jo asennettuna, ja muokkaat machine.config-tiedostoa lisäämällä sellaisen DbProviderFactoriesissa. Joten jos laitat toisen MySQL-datapalveluntarjoajan web.config-tiedostoosi, se on kuin yrittäisit rekisteröidä samaa asiaa kahdesti.











Edellinen:C# sijoittaa viitekirjaston DLL-tiedostot alikansioihin probaamalla
Seuraava:ASP.NET Core Link Tracing (3) SkyAPM perustuu Consulin dynaamiseen konfiguraatioon
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com