Posting ini terakhir diedit oleh QWERTYU pada 2020-11-11 09:14
Skenario: Buka proyek .NET menggunakan database mysql dan instal di lingkungan pengembangan lokalKonektor MySQL .NET, semuanya berfungsi dengan baik, tetapi ketika dirilis ke iis, programnya tidak normal dan pesan kesalahannya adalah sebagai berikut:
Informasi pengecualian: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informasi pengecualian: Penyedia ADO.NET dengan nama tetap "MySql.Data.MySqlClient" tidak terdaftar di komputer atau profil aplikasi atau tidak dapat dimuat. Untuk informasi selengkapnya, lihat Pengecualian Internal.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Temukan masalahnya: Menemukan bahwa server tidak diinstalKonektor .NET MySQL, karena mysql menggunakan database cloud Alibaba Cloud, ada juga beberapa server, untuk menghindari instalasi di setiap serverKonektor MySQL .NET,Untuk melakukan ini, saya memastikan untuk mengatur referensi MySQL ke "salinan lokal" sehingga saya dapat menyalinnya ke folder bin dan menambahkan yang berikut ini ke app.config saya:
Setelah menambahkan konfigurasi di atas, ini berfungsi dengan baik di server dan saya dapat menyebarkan aplikasi tanpa menginstal konektor MySQL di server, tetapi sekarang saya memiliki masalah pada mesin dev lokal saya (dengan konektor MySQL terinstal) dan saya mendapatkan kesalahan ini ketika saya mencoba koneksi EF: Informasi pengecualian: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informasi pengecualian: Penyedia ADO.NET dengan nama tetap "MySql.Data.MySqlClient" tidak terdaftar di komputer atau profil aplikasi atau tidak dapat dimuat. Untuk informasi selengkapnya, lihat Pengecualian Internal. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Coba tindakannya: Jika saya mengomentari XML yang ditambahkan di atas dalam konfigurasi, kesalahan akan hilang. Ini mungkin karena driver yang sama diinstal pada sistem dan terletak di machine.config. Solusi akhir dan mengapa:
Coba tambahkan <remove invariant="MySql.Data.MySqlClient" /> di webconfig Anda. Di komputer Anda, Anda sudah menginstal konektor MySql, dan Anda memodifikasi machine.config Anda dengan menambahkannya di DbProviderFactories. Jadi jika Anda menempatkan penyedia data MySql lain di web.config Anda, seolah-olah Anda mencoba mendaftarkan hal yang sama dua kali.
|