Gejala
Setelah Anda memasang Pratinjau Agustus kualitas Batal atau 11 September 2018 pemutakhiran .NET Framework, Instansiasi SqlConnection dapat membuang pengecualian.
Penggunaan konstruktor SqlConnection dapat menyebabkan jejak tumpukan yang menyerupai berikut ini:
System.Runtime.Serialization.SerializationException di System.AppDomain.get_Evidence() di System.AppDomain.get_Evidence() di System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, String exePath, String & typeName) di System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, String exePath) di System.Configuration.ClientConfigPaths. ctor (String exePath, Boolean includeUserConfig) pada System.Configuration.ClientConfigPaths.GetPaths (String exePath, Boolean includeUserConfig) di System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord catatan) pada System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, objek & hasil, objek & resultRuntimeObject) pada System.Configuration.BaseConfigurationRecord.GetSection (String configKey) pada System.Configuration.ConfigurationManager.GetSection (String sectionName) di System.Data.SqlClient.SqlConnection. cctor()
Penyelesaian Masalah
Pemecahan masalah 1
Tambahkan baris berikut pada configSection berkas App.Config aplikasi:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Catatan Jika aplikasi tidak menyertakan berkas app.config, kami sarankan Anda membuat dan menyebarkan app.config berkas yang berisi informasi ini di configSection.
Jika penyelesaian masalah 1 tidak berhasil, cobalah penyelesaian masalah 2.
Penyelesaian masalah 2
Mengidentifikasi tempat di domain aplikasi yang berjalan sebelum objek apa pun telah ditambahkan dalam konteks panggilan logis. Menambahkan kode untuk memaksa ConfigurationManager untuk mencoba untuk memuat bagian yang tidak ada di berkas konfigurasi apa pun. Misalnya:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Untuk informasi selengkapnya tentang masalah ini, lihat artikel GitHub mitigasi: Deserialization objek aplikasi domain.
Status
Microsoft menyelidiki masalah ini dan akan memberikan pembaruan pada peluncuran mendatang.