Šį įrašą paskutinį kartą redagavo QWERTYU 2020-11-11 09:14
Scenarijus: Atidarykite .NET projektą naudodami mysql duomenų bazę ir įdiekite jį vietinėje kūrimo aplinkoje.NET MySQL jungtis, viskas veikia gerai, bet kai ji išleidžiama į iis, programa yra nenormali ir klaidos pranešimas yra toks:
Informacija apie išimtis: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informacija apie išimtis: ADO.NET teikėjas fiksuotu pavadinimu "MySql.Data.MySqlClient" nėra užregistruotas kompiuteryje arba programos profilyje arba negali būti įkeltas. Daugiau informacijos rasite Vidinės išimtys.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Raskite problemą: Nustatyta, kad serveris neįdiegtas.NET MySQL jungtis, nes mysql naudoja Alibaba Cloud debesies duomenų bazę, taip pat yra keli serveriai, kad būtų išvengta diegimo kiekviename serveryje.NET MySQL jungtis,Norėdami tai padaryti, būtinai nustatiau MySQL nuorodas į "vietinę kopiją", kad galėčiau nukopijuoti jas į šiukšliadėžės aplanką ir pridėti šiuos dalykus prie savo app.config:
Pridėjus aukščiau pateiktą konfigūraciją, ji puikiai veikia serveryje ir galiu įdiegti programą neįdiegęs "MySQL" jungties serveryje, bet dabar turiu problemų vietiniame kūrėjo kompiuteryje (su įdiegta "MySQL" jungtimi) ir gaunu šią klaidą, kai bandau EF ryšį: Informacija apie išimtis: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informacija apie išimtis: ADO.NET teikėjas fiksuotu pavadinimu "MySql.Data.MySqlClient" nėra užregistruotas kompiuteryje arba programos profilyje arba negali būti įkeltas. Daugiau informacijos rasite Vidinės išimtys. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Išbandykite veiksmą: Jei pakomentuosiu aukščiau pridėtą XML konfigūracijoje, klaida išnyks. Taip gali būti todėl, kad ta pati tvarkyklė yra įdiegta sistemoje ir yra machine.config. Galutinis sprendimas ir kodėl:
Pabandykite įtraukti <remove invariant="MySql.Data.MySqlClient" /> į savo žiniatinklio konfigūraciją. Savo kompiuteryje jau įdiegėte "MySql" jungtį ir modifikuojate savo machine.config pridėdami ją į DbProviderFactories. Taigi, jei į savo web.config įdėsite kitą "MySql" duomenų teikėją, tarsi bandytumėte du kartus užregistruoti tą patį.
|