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