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.
|