Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: .NET Framework
.NET
.NET Standard
AppContext sınıfı, SqlClient'ın önceki davranışa bağımlı arayanları desteklemeye devam ederken yeni işlevler sağlamasına olanak tanır. Kullanıcılar belirli AppContext anahtarları ayarlayarak davranış değişikliğini geri çevirebilir.
MultiSubnetFailover'ı varsayılan olarak etkinleştirme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
(Sürüm 7.0'dan itibaren kullanılabilir)
Uygulama başlangıcında "Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault" AppContext anahtarını true olarak ayarlayarak, tek tek bağlantı dizelerini değiştirmeden genel ayar yapabilirsiniz:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault", true);
Bu anahtarı App.Config'inizde de etkinleştirebilirsiniz:
<runtime>
<AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault=true" />
</runtime>
Etkinleştirildiğinde, tüm bağlantılar bağlantı dizesinde ayarlanmış gibi MultiSubnetFailover=true davranır. Bu anahtar varsayılan olarak devre dışıdır.
Zaman uyumsuz okumalar için paket çoğullamayı etkinleştirin
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
(Sürüm 7.0'dan itibaren kullanılabilir)
Paket çoğullama, büyük sonuç kümeleri, akış senaryoları veya toplu veri alma gibi ExecuteReaderAsync büyük zaman uyumsuz okuma işlemleri için performansı artırır. Bu özellik, iki isteğe bağlı AppContext anahtarı tarafından denetlenir. her iki anahtarın false da ayarlanması yeni eşzamansız işlem yolunu etkinleştirir.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityAsyncBehaviour", false);
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityProcessSni", false);
Varsayılan olarak, her iki anahtar da true mevcut (uyumlu) davranışı korur.
Kullanıcı Aracısı özellik uzantısını etkinleştirme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
(Sürüm 7.0'dan itibaren kullanılabilir)
AppContext anahtarı "Switch.Microsoft.Data.SqlClient.EnableUserAgent" etkinleştirildiğinde, sürücü bağlantının bir parçası olarak sunucuya kullanıcı aracısı ayrıntılarını gönderir. Bu bilgiler, sürüme ve işletim sistemine göre sürücü kullanımını gidermeye ve ölçmeye yardımcı olur. Bu anahtar varsayılan olarak devre dışıdır. Bunu etkinleştirmek için uygulama başlangıcında AppContext anahtarını true olarak ayarlayın:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableUserAgent", true);
Ondalık kesme davranışını etkinleştirme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
Microsoft.Data.SqlClient 2.0'dan başlayarak, SQL Server tarafından yapıldığı gibi ondalık veriler varsayılan olarak yuvarlanr. Önceki kesme davranışını etkinleştirmek için uygulama başlangıcında AppContext anahtarını "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal"true olarak ayarlayabilirsiniz.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Windows'da yönetilen ağı etkinleştirme
Şunlar için geçerlidir: .NET; .NET Standard
(Sürüm 2.0'dan itibaren kullanılabilir)
Windows'da SqlClient varsayılan olarak SNI ağ arabiriminin yerel bir uygulamasını kullanır. Yönetilen SNI uygulamasının kullanımını etkinleştirmek için uygulama başlangıcında "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows"true AppContext anahtarını ayarlayabilirsiniz:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Bu anahtar, windows üzerinde .NET Core 2.1+ ve .NET Standard 2.0+ projelerinde yönetilen ağ uygulamasını kullanmak için sürücünün davranışını değiştirir ve Microsoft.Data.SqlClient kitaplığı için yerel kitaplıklardaki tüm bağımlılıkları ortadan kaldırır. Yalnızca test ve hata ayıklama amaçlıdır.
Uyarı
Yerel uygulamayla karşılaştırıldığında bazı bilinen farklılıklar vardır. Örneğin, yönetilen uygulama etki alanı dışı Windows Kimlik Doğrulamasını desteklemez.
Saydam Ağ IP Çözümlemesini Devre Dışı Bırakma
Şunlar için geçerlidir: .NET Framework
Saydam Ağ IP Çözümlemesi (TNIR), mevcut MultiSubnetFailover özelliğinin bir düzeltmesidir. Ana bilgisayar adının ilk çözümlenen IP'sinin yanıt vermemesi ve ana bilgisayar adıyla ilişkilendirilmiş birden çok IP olması durumunda TNIR, sürücünün bağlantı sırasını etkiler. TNIR, aşağıdaki üç bağlantı dizisini sağlamak için MultiSubnetFailover ile etkileşim kurar:
- 0: Bir IP denendikten sonra, tüm IP'ler paralel olarak denenir.
- 1: Tüm IP'ler paralel olarak deneniyor
- 2: Tüm IP'ler birbiri ardına deneniyor
| Şeffaf Ağ IP Çözümleme | MultiSubnetFailover | Davranış |
|---|---|---|
| Doğru | Doğru | 1 |
| Doğru | Yanlış | 0 |
| Yanlış | Doğru | 1 |
| Yanlış | Yanlış | 2 |
TransparentNetworkIPResolution varsayılan olarak etkindir. MultiSubnetFailover varsayılan olarak devre dışıdır. TNIR'yi devre dışı bırakmak için uygulama başlangıcında "Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString"true AppContext anahtarını ayarlayabilirsiniz:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Bu özellikleri ayarlama hakkında daha fazla bilgi için SqlConnection.ConnectionString Özelliği belgelerine bakın.
Oturum açma sırasında en düşük zaman aşımını etkinleştirme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
Oturum açma girişiminin süresiz olarak beklemesini önlemek için, uygulama başlangıcında Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogintrue AppContext anahtarını ayarlayabilirsiniz:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
ReadAsync'in engelleme davranışını devre dışı bırakma
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
Sürüm 3.0'dan itibaren ReadAsync zaman uyumsuz olarak çalışır. Önceki sürümler ReadAsync'i zaman uyumlu olarak çalıştırır ve .NET Framework'te çağıran iş parçacığını engeller. Bu engelleme davranışını denetlemek için AppContext anahtarını Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking olarak true veya false uygulama başlangıcında ayarlayabilirsiniz:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Rowversion null davranışını etkinleştirme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
Sürüm 3.0'dan başlayarak, rowversion değeri null olduğunda boş SqlDataReaderDBNullyerine bir byte[] değer döndürür. Boş byte[]bir değer döndürmenin eski davranışını etkinleştirmek için uygulama başlangıcında Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior AppContext anahtarını etkinleştirin.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Güvenli olmayan TLS uyarılarını gizleme
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
(Sürüm 4.0.1'den itibaren kullanılabilir)
Bağlantı dizesinde kullanırken Encrypt=false , TLS sürümü 1.2 veya daha düşükse konsola bir güvenlik uyarısı gönderilir. Bu uyarı, uygulama başlatıldığında aşağıdaki AppContext anahtarı etkinleştirilerek gizlenebilir:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Sunucu Tarafından Sağlanan Yük Devretme İş Ortağını Yoksay
Şunlar için geçerlidir: .NET Framework; .NET; .NET Standard
(5.1.8, 6.0.4 ve 6.1.3 sürümlerinden itibaren kullanılabilir)
Yük devretme işleminden sonra, sunucu tarafından sağlanan yük devretme iş ortağı bilgileri, bağlantı dizesinde sağlanan yük devretme iş ortağı bilgileri yerine tercih edilir. Sunucu tarafından sağlanan yük devretme iş ortağı bilgilerini yoksaymak ve yalnızca bağlantı dizesinde sağlanan yük devretme iş ortağı bilgilerini göz önünde bulundurmak için, uygulama başlangıcında bu AppContext anahtarını etkinleştirin:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);