Microsoft.Data.SqlClient için bağlantı seçenekleri

Microsoft.Data.SqlClient bağlantı seçenekleri, sürücünün bir bağlantıyı nasıl kurduğunu, tanımladığını, yönlendirdiğini, yeniden denediğini ve havuzladığını denetler. Bunları bir bağlantı dizesinde veya eşleşen SqlConnectionStringBuilder özellikleri aracılığıyla ayarlayın.

Microsoft Entra ID kimlik doğrulaması hakkında bilgi için bkz. Microsoft Entra ID kimlik doğrulaması. TLS ayarları için Şifreleme ve sertifika doğrulama bölümlerine bakınız.

SqlConnectionStringBuilder ile seçenekleri ayar

bağlantı dizesi fragmentlerini birleştirmek yerine builder'ı kullanın:

var builder = new SqlConnectionStringBuilder
{
    DataSource = "tcp:sql.example.com,1433",
    InitialCatalog = "Orders",
    IntegratedSecurity = true,
    Encrypt = SqlConnectionEncryptOption.Mandatory,
    ApplicationName = "Orders.Worker",
    ConnectTimeout = 30,
    ConnectRetryCount = 3,
    ConnectRetryInterval = 10,
    MultiSubnetFailover = true,
};

Kod, inşaatçı mülk isimlerini kullanır. Tablolar, bağlantı dizelerinin yaygın yazım biçimlerini kullanır. Sürücü ayrıca belgelenmiş takma adları da kabul ediyor.

Mola seçenekleri

Anahtar kelime Varsayılan Davranış Version
Connect Timeout 15 saniye Bağlantı kurma süresini sınırlar. Havuz Max Pool Size olduğunda, bu aynı zamanda kullanılabilir bir havuz bağlantısı için bekleme süresini de sınırlar. Connection Timeout ve Timeout diğer adlardır. Tüm Microsoft. Data.SqlClient sürümleri
Command Timeout 30 saniye Bağlantıya bağlı komutlar için varsayılan zaman aşımını ayarlıyor. Bir işlem farklı bir sınıra ihtiyaç duyduğunda, bir komutta CommandTimeout ayarlayın. 0 değerinin zaman sınırı yoktur ve işin süresiz olarak beklemede kalmasına neden olabilir. Microsoft. Data.SqlClient 2.1 ve sonraki sürümler

Bağlantı ve komut zaman aşımları farklı işleri ölçür. Connect Timeout sorgu yürütülmesini sınırlamaz. Command Timeout kimlik doğrulamayı veya havuzlanmış bir bağlantı için bekleme süresini sınırlamaz.

A CancellationToken her iki ayardan da ayrıdır. Bunu OpenAsync, komut yürütme ve okuyucu yöntemlerine iletin; böylece çağıran zaman aşımı süresi dolmadan önce beklemeyi durdurabilir.

İş yükü kimliği ve yönlendirme seçenekleri

Anahtar kelime Varsayılan Davranış Version
Application Name Sağlayıcı tarafından tanımlanan isim SQL Server oturumları, denetim ve tanı işlemlerindeki iş yükünü belirler. Her dağıtılan iş yükü için tek bir kararlı, düşük kardinaliteli isim kullanın. Tüm Microsoft. Data.SqlClient sürümleri
Application Intent ReadWrite ReadOnly Hedef ve erişilebilirlik grubu buna göre yapılandırıldığında okuma niyetli yönlendirme talep eder. SQL ifadelerini sadece okunabilir hale getirmiyor. Tüm Microsoft. Data.SqlClient sürümleri

Application Intent=ReadOnly Genellikle bir erişilebilirlik grubu dinleyicisi veya okuma yönlendirmesini destekleyen bir hizmet uç noktası ile eşleşir. Yüksek erişilebilirlik ve felaket kurtarma noktasına bakınız.

Ağ ve paket seçenekleri

Anahtar kelime Varsayılan Davranış Version
Packet Size 8.000 bayt Tabular Data Stream (TDS) ağ paket boyutunu ayarlar. Desteklenen değerler 512 ile 32.768 bayt arasındadır. İş yükü ölçümleri ve sunucu yapılandırması değişikliği haklı çıkarmadıkça varsayılan olarak kalın. Tüm Microsoft. Data.SqlClient sürümleri
MultiSubnetFailover false Çok adresli uç nokta için geri dönen IP adreslerine paralel TCP bağlantı girişimlerini kullanır. Azure SQL uç noktaları, kullanılabilirlik grubu dinleyicileri ve TCP üzerinden erişilen yük devretme kümesi örnekleri için bunu true olarak ayarlayın. Tüm Microsoft. Data.SqlClient sürümleri

MultiSubnetFailover=true adlandırılmış örnekler, TCP dışı protokoller, veritabanı aynalama veya 64'ten fazla IP adresiyle yapılandırılmış uç noktalarla desteklenmez. Tek IP'li TCP uç noktası için güvenlidir.

Microsoft.Data.SqlClient 7.0 ayrıca, her bağlantının MultiSubnetFailover=true varmış gibi davranmasını sağlayabilen, süreç genelinde geçerli bir AppContext anahtarına sahiptir. Bu seçenek etkinleştirilmediğinde bağlantı dizesi varsayılan değeri false olarak kalır. SqlClient'taki AppContext anahtarlarına bakın.

Havuzlama seçenekleri

Anahtar kelime Varsayılan Davranış Version
Pooling true Bağlantı konfigürasyonlarını eşleştirmek için fiziksel bağlantıları yeniden kullanır. Bunu yalnızca tanılama amacıyla veya güvenli bir şekilde havuzlanamayan kontrollü bir iş yükü için devre dışı bırakın. Tüm Microsoft. Data.SqlClient sürümleri
Min Pool Size 0 Havuz oluşturulduktan sonra, havuzda en az bu sayıda fiziksel bağlantı tutulur. Pozitif bir değer, havuz veya süreç bitene kadar veritabanı oturumlarını açık tutabilir. Tüm Microsoft. Data.SqlClient sürümleri
Max Pool Size 100 Fiziksel bağlantıları tek bir havuzda sınırlar. İstekler havuz dolmasına kadar bekliyor Connect Timeout . Tüm Microsoft. Data.SqlClient sürümleri
Load Balance Timeout 0 Saniye Eğer yaşı bu değeri aşarsa, bağlantı havuza döndüğünde atılır. Connection Lifetime diğer addır. 0 yaşa göre kaldırmayı devre dışı bırakır. Tüm Microsoft. Data.SqlClient sürümleri
Pool Blocking Period Auto Havuzun önbelleklenmiş giriş hatasını geçici olarak yeniden başlatıp başlatmadığını kontrol eder. Autotanınan Azure SQL uç noktaları için engelleme süresini devre dışı bırakır ve diğer uç noktalar için etkinleştirir. Tüm Microsoft. Data.SqlClient sürümleri
Enlist true Otomatik olarak açık bir bağlantıyı ortam System.Transactions işleminde listeler. Tüm Microsoft. Data.SqlClient sürümleri

Havuz ayarları her ayrı havuza uygulanır, tüm süreç veya veritabanı sunucusu için değil. Yükseltmeden Max Pool Sizeönce, bağlantıların ve okuyucuların hemen bertaraf edildiğini ve veritabanının her uygulama örneğinde elde edilen toplamı kabul edebildiğini doğrulayın.

Havuz anahtarları, token davranışı, engelleme dönemleri, temizleme ve tanılama için bkz. SQL Server bağlantı havuzu.

Bağlantı kurtarma seçenekleri

Anahtar kelime Varsayılan Davranış Version
Connect Retry Count 1 İlk bağlantı sırasında yeniden denemeye uygun geçici hatalar için ve bozulmuş boşta bir bağlantının yeniden kurulması için deneme sayısını ayarlar. Geçerli varsayılan, tanınan Azure SQL uç noktaları için 2 ve tanınan Azure Synapse ile istek üzerine uç noktalar için 5 değeridir. 0 bu yeniden denemeleri devre dışı bırakır. Tüm Microsoft. Data.SqlClient sürümleri
Connect Retry Interval 10 saniye Daha sonraki ilk bağlantı veya boşta kurtarma denemelerinden önceki gecikmeyi ayarlıyor. Geçerli değerler 1'den 60 saniyeye kadardır. Tüm Microsoft. Data.SqlClient sürümleri

Bağlantı kurtarma sırasında ilk tekrar deneme hemen gerçekleşir. Connect Retry Interval sonraki denemelerden önce uygulanır. Bir işlem için yerleşik ilk açık yeniden denemeyi atlamak için, açık aşırı yükleme ile OpenWithoutRetrykullanın.

Bu anahtar kelimeler, çalışırken başarısız olan bir komutu tekrar denemez. Özel bir açma veya komut politikası için yapılandırılabilir yeniden deneme mantığı kullanın. Komutları yalnızca etkilerini yinelemenin güvenli olduğu durumlarda yeniden deneyin.

Sunucu kimliği ve sertifika seçenekleri

Bu seçenekler, belirli sertifika veya Kerberos isimlendirme gereksinimlerini çözer. Normal kimlik doğrulama ve sertifika doğrulamasının yerini almıyorlar.

Anahtar kelime Varsayılan Davranış Version
Host Name In Certificate Sunucu ana adı Bağlantı sertifikadan farklı bir DNS takma adını kullandığında beklenen Ortak İsim (CN) veya Özne Alternatif İsmi (SAN) sağlar. Microsoft. Data.SqlClient 5.0 ve sonraki sürümler
Server Certificate Empty Encrypt=Mandatory veya Encrypt=Strict kullanıldığında sunucu sertifikasıyla tam olarak eşleşmesi gereken bir PEM, DER veya CER dosyası belirtir. Microsoft. Data.SqlClient 5.1 ve sonraki sürümler
Server SPN Sunucu adından türetilmiştir Birincil sunucuya entegre kimlik doğrulama için kullanılan Hizmet Başalı Adını (SPN) geçersiz kılar. Bunu yalnızca kullanılan Kerberos adlandırması SPN’nin açıkça belirtilmesini gerektirdiğinde yapılandırın. Microsoft. Data.SqlClient 5.0 ve sonraki sürümler
Failover Partner SPN Failover partnerinden türetilmiştir Veritabanı yansıtma failover ortağı için SPN'yi geçersiz kılar. Veritabanı yansıtma kullanımdan kaldırıldı. Yeni dağıtımlar için kullanılabilirlik gruplarını kullanın. Microsoft. Data.SqlClient 5.0 ve sonraki sürümler

Host Name In Certificate sertifika eşleştirme için kullanılan isim değiştirilir. Güvenilmeyen bir vericiye güvenmiyor. Server Certificate belirli bir sertifika dosyasını sabitler ve bu sertifika yenilendiğinde uygulamanın güncellenmesini gerektirir.

Hatalı SPN geçersiz kılmaları, Kerberos kimlik doğrulamasını engelleyebilir veya hedeflenen kimlik denetimini zayıflatabilir. Mümkünse geçersiz kılma kullanmak yerine DNS ve SPN kayıtlarını düzeltin.

Bağlantı dizilerini küçük tutun. Sadece hangi davranışı değiştirdiğini ve iş yükünün bu davranışı nasıl doğruladığını belirtebildiğinizde bir seçenek ekleyin.

İnceleme seçeneği değişiklikleri

Üretimdeki bir seçeneği değiştirmeden önce:

  1. Mevcut bağlantı dizesi'i, sürücü sürümünü, uç nokta tipini ve gözlemlenen sorunu kaydedin.
  2. Davranışları birer değiştirin.
  3. Test bağlantısı kurulumu, kimlik doğrulama, sertifika doğrulama, havuzlama, yedekleme, iptal ve sorgu yürütme.
  4. Hard bağlantıları, havuz beklemelerini, bağlantı gecikmesini ve hata sayılarını ölçün.
  5. Her dağıtılan örnekte ayarı onaylayın.

Bağlantı dizileri, havuz anahtarının bir parçasıdır. Aşamalı bir dağıtım, geçici olarak hem eski hem de yeni havuzlar oluşturabilir ve bu da fiziksel veritabanı bağlantılarının toplam sayısını artırır.