Този пост беше последно редактиран от QWERTYU на 11.11.2020 г., 09:14
Сценарий: Отворете .NET проект с помощта на mySQL базата данни и го инсталирайте в локалната среда за разработка.NET MySQL конектор, всичко работи нормално, но когато се пусне в iis, програмата е ненормална и съобщението за грешка е следното:
Информация за изключения: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> информация за изключения: Доставчикът на ADO.NET с фиксирано име "MySql.Data.MySqlClient" не е регистриран в компютъра или профила на приложението или не може да бъде зареден. За повече информация вижте Вътрешни изключения.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Открийте проблема: Открих, че сървърът не е инсталиран.NET MySQL конектор, тъй като mySQL използва облачната база данни на Alibaba Cloud, има и няколко сървъра, за да се избегне инсталирането на всеки сървър.NET MySQL конектор,За да го направя, се уверих, че съм задал MySQL референциите на "локално копие", за да мога да ги копирам в папката bin и да добавя следното в моята app.config:
След като добавих горната конфигурация, всичко работи нормално на сървъра и мога да деплоирам приложението без да инсталирам MySQL конектора на сървъра, но сега имам проблем на локалната ми машина за разработка (с инсталиран MySQL конектор) и получавам тази грешка, когато опитам EF връзка: Информация за изключения: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> информация за изключения: Доставчикът на ADO.NET с фиксирано име "MySql.Data.MySqlClient" не е регистриран в компютъра или профила на приложението или не може да бъде зареден. За повече информация вижте Вътрешни изключения. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Опитайте действието: Ако коментирам добавения по-горе XML в конфигурацията, грешката изчезва. Това може да се дължи на факта, че същият драйвер е инсталиран в системата и се намира в machine.config. Крайното решение и защо:
Опитайте да добавите <remove invariant="MySql.Data.MySqlClient" /> в вашата уеб конфигурация. На твоята машина вече имаш инсталиран MySQL конектор и модифицираш machine.config, като добавиш такъв в DbProviderFactories. Така че ако сложиш друг MySQL доставчик на данни в web.config, все едно си опитал да регистрираш едно и също нещо два пъти.
|