Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 19035|Отговор: 0

[Решено] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Копирай линк]
Публикувано на 2020-11-11 09:11:52 | | |
Този пост беше последно редактиран от 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, все едно си опитал да регистрираш едно и също нещо два пъти.











Предишен:C# поставя DLL от референтната библиотека в подпапки чрез пробиране
Следващ:ASP.NET Core Link Tracing (3) SkyAPM е базиран на динамична конфигурация Consul
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com