Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: .NET Framework
.NET
.NET Standard
Kelas AppContext memungkinkan SqlClient untuk menyediakan fungsionalitas baru sambil terus mendukung pemanggil yang bergantung pada perilaku sebelumnya. Pengguna dapat menolak perubahan perilaku dengan mengatur sakelar AppContext tertentu.
Mengaktifkan perilaku pemotongan desimal
Berlaku untuk: .NET Framework; .NET; .NET Standard
Dimulai dengan Microsoft.Data.SqlClient 2.0, data desimal dibulatkan secara default, seperti yang dilakukan oleh SQL Server. Untuk mengaktifkan perilaku pemotongan sebelumnya, Anda dapat mengatur sakelar AppContext "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal" ke true saat pengaktifan aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Mengaktifkan jaringan terkelola pada Windows
Berlaku untuk: .NET; .NET Standard
(Tersedia dimulai dengan versi 2.0)
Di Windows, SqlClient menggunakan implementasi asli antarmuka jaringan SNI secara default. Untuk mengaktifkan penggunaan implementasi SNI terkelola, Anda dapat mengatur sakelar AppContext "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" ke true saat pengaktifan aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Sakelar ini mengalihkan perilaku driver untuk menggunakan implementasi jaringan terkelola di proyek .NET Core 2.1+ dan .NET Standard 2.0+ di Windows, menghilangkan semua dependensi pada pustaka asli untuk pustaka Microsoft.Data.SqlClient. Ini hanya untuk tujuan pengujian dan penelusuran kesalahan.
Catatan
Ada beberapa perbedaan yang diketahui jika dibandingkan dengan implementasi asli. Misalnya, implementasi terkelola tidak mendukung Autentikasi Windows non-domain.
Menonaktifkan Resolusi IP Jaringan Transparan
Berlaku untuk: .NET Framework
Resolusi IP Jaringan Transparan (TNIR) adalah revisi dari fitur MultiSubnetFailover yang ada. TNIR memengaruhi urutan koneksi driver dalam kasus di mana IP pertama yang diselesaikan dari nama host tidak merespons dan ada beberapa IP yang terkait dengan nama host. TNIR berinteraksi dengan MultiSubnetFailover untuk menyediakan tiga urutan koneksi berikut:
- 0: Satu IP dicoba, diikuti oleh semua IP secara paralel
- 1: Semua IP dicoba secara paralel
- 2: Semua IP dicoba satu demi satu
| TransparentNetworkIPResolution | MultiSubnetFailover | Perilaku |
|---|---|---|
| Benar | Benar | 1 |
| Benar | Salah | 0 |
| Salah | Benar | 1 |
| Salah | Salah | 2 |
TransparentNetworkIPResolution diaktifkan secara default. MultiSubnetFailover dinonaktifkan secara default. Untuk menonaktifkan TNIR, Anda dapat mengatur sakelar AppContext "Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString" ke true saat pengaktifan aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Untuk informasi selengkapnya tentang mengatur properti ini, lihat dokumentasi untuk Properti SqlConnection.ConnectionString.
Aktifkan batas waktu minimum selama masuk
Berlaku untuk: .NET Framework; .NET; .NET Standard
Untuk mencegah upaya masuk menunggu tanpa batas waktu, Anda dapat mengatur sakelar AppContext Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin ke true saat pengaktifan aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
Menonaktifkan perilaku pemblokiran ReadAsync
Berlaku untuk: .NET Framework; .NET; .NET Standard
Mulai versi 3.0, ReadAsync berjalan secara asinkron. Versi sebelumnya menjalankan ReadAsync secara sinkron dan memblokir utas panggilan pada .NET Framework. Untuk mengontrol perilaku pemblokiran ini, Anda dapat mengatur sakelar aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Mengaktifkan perilaku null rowversion
Berlaku untuk: .NET Framework; .NET; .NET Standard
Mulai versi 3.0, ketika rowversion memiliki nilai null, SqlDataReader mengembalikan DBNull nilai alih-alih kosong byte[]. Untuk mengaktifkan perilaku warisan mengembalikan kosong byte[], aktifkan sakelar AppContext Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior pada startup aplikasi.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Menekan peringatan TLS yang tidak aman
Berlaku untuk: .NET Framework; .NET; .NET Standard
(Tersedia dimulai dengan versi 4.0.1)
Saat menggunakan Encrypt=false di string koneksi, peringatan keamanan adalah output ke konsol jika versi TLS adalah 1.2 atau lebih rendah. Peringatan ini dapat disembunyikan dengan mengaktifkan pengalihan AppContext berikut pada startup aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Abaikan Mitra Failover yang Disediakan Server
Berlaku untuk: .NET Framework; .NET; .NET Standard
(Tersedia mulai dari versi 5.1.8, 6.0.4, dan 6.1.3)
Setelah failover, informasi mitra failover yang disediakan oleh server lebih diutamakan daripada informasi mitra failover yang tercantum dalam string koneksi. Untuk mengabaikan informasi mitra failover yang disediakan oleh server dan hanya mempertimbangkan informasi mitra failover yang disediakan dalam string koneksi, aktifkan pengalihan AppContext ini pada startup aplikasi:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);