Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 connector, поскольку 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