Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19035|Yanıt: 0

[Çözüldü] . .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...

[Bağlantıyı kopyala]
2020-11-11 09:11:52 tarihinde yayınlandı | | |
Bu gönderi en son 2020-11-11 09:14 tarihinde QWERTYU tarafından düzenlenmiştir

Senaryo:
Mysql veritabanını kullanarak bir .NET projesi açın ve yerel geliştirme ortamına kurun.NET MySQL bağlantısı, her şey sorunsuz çalışıyor, ancak iis'e yayınlandığında program anormal ve hata mesajı şöyle:
İstisna bilgileri:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> istisna bilgisi: "MySql.Data.MySqlClient" adlı sabit isimli ADO.NET sağlayıcı bilgisayar veya uygulama profilinde kayıtlı değildir veya yüklenemez. Daha fazla bilgi için İç İstisnalar bölümüne bakınız.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Sorunu bulun:
Sunucunun kurulu olmadığını fark ettim.NET MySQL bağlantısı, mysql Alibaba Cloud'un bulut veritabanını kullandığı için, her sunucuya kurulumdan kaçınmak için birden fazla sunucu da vardır.NET MySQL connector,Bunu yapmak için, MySQL referanslarını "yerel kopya" olarak ayarladım, böylece bunları bin klasörüne kopyalayıp app.config'uma aşağıdakileri ekleyebilirim:
Yukarıdaki yapılandırmayı ekledikten sonra sunucuda sorunsuz çalışıyor ve MySQL konnektörünü sunucuya yüklemeden uygulamayı dağıtabiliyorum, ancak şimdi yerel dev makinemde (MySQL konnektörü kuruluyken) bir sorun yaşıyorum ve EF bağlantısını denediğimde şu hata alıyorum:
İstisna bilgileri:
System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> istisna bilgisi: "MySql.Data.MySqlClient" adlı sabit isimli ADO.NET sağlayıcı bilgisayar veya uygulama profilinde kayıtlı değildir veya yüklenemez. Daha fazla bilgi için İç İstisnalar bölümüne bakınız.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Aksiyonu deneyin:
Yukarıda konfigürasyonda eklenen XML'yi yorumlarsam, hata kayboluyor. Bunun nedeni, aynı sürücünün sisteme yüklenmesi ve machine.config içinde bulunmasıdır.
Son çözüm ve nedeni:
Webconfig'inize <remove invariant="MySql.Data.MySqlClient" /> eklemeyi deneyin. Makinenizde zaten MySql konnektörü yüklü ve machine.config konnektörünüzü DbProviderFactories'te ekleyerek değiştiriyorsunuz. Yani web.config'e başka bir MySql veri sağlayıcısı koyarsanız, aynı şeyi iki kez kaydetmeye çalışmış gibisiniz.











Önceki:C#, referans kütüphane DLL'lerini probing yoluyla alt klasörlere yerleştirir
Önümüzdeki:ASP.NET Çekirdek Bağlantı Takip (3) SkyAPM, Konsolos dinamik yapılandırmasına dayanır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com