Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 19035|Відповідь: 0

[Вирішено] . .NET MySQL Connector конфлікти DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Копіювати посилання]
Опубліковано 2020-11-11 09:11:52 | | |
Цей допис востаннє відредаговано QWERTYU 2020-11-11 09:14

Сценарій:
Відкрийте .NET-проєкт із базою даних mysql і встановіть його в локальному середовищі розробки.NET MySQL connector, все працює нормально, але коли він виходить на 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 connector,Для цього я встановив посилання MySQL на «локальне копіювання», щоб скопіювати їх у папку bin і додати наступне до свого app.config:
Після додавання вищезазначеної конфігурації все працює нормально на сервері, і я можу розгорнути додаток без встановлення MySQL connector на сервері, але тепер у мене проблема на локальному розробнику (з встановленим MySQL connector), і я отримую цю помилку, коли пробую підключення 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