Aracılığıyla paylaş


SQLCMD yardımcı programı kullanılırken aralıklı bağlantı hataları oluşuyor

Bu makale, SQLCMD komut satırı aracını kullandığınızda oluşan aralıklı bağlantı "İs hatası 10054" sorunlarını çözmenize yardımcı olur.

Hata

Aşağıdaki uyarı ve hata iletilerini alırsınız:

UYARI: proc_procname HResult 0x2746, Düzey 16, Durum 1 döndürdü

TCP Sağlayıcısı: Var olan bir bağlantı uzak konak tarafından zorla kapatıldı.

SQLCMD.EXE: Sqlcmd: Hata: Microsoft SQL Server Native Client 10.0 : İstemci bağlantı kuramadı

Bu hataların olası nedenlerinden biri desteklenmeyen bir sürücüdür.

Dikkate alınması gereken sorular

Sorununuza uygun olup olmadığını belirlemek için aşağıdaki senaryoları gözden geçirin:

  • Bir ağ izlemesi toplar ve TLS 1.0 ve 1.1'in devre dışı bırakıldığını ve TLS 1.2'nin etkinleştirildiğini öğrenirsiniz. SQL Server çalıştıran sunucuda, uygulama sunucusunda TLS 1.0, 1.1 ve 1.2 etkinleştirilir.

    Uygulama sunucusunda TLS 1.0, 1.1 ve 1.2'nin etkinleştirildiğini gösteren ekran görüntüsü.

  • Hem SQL Server için Microsoft OLE DB Sağlayıcısını hem de SNAC 11 sağlayıcısını kullanarak uygulama sunucusunda bir UDL testi çalıştırırsınız. Bağlantı başarısız oluyor. Ayrıca "SQL Server için Microsoft OLE DB Sağlayıcısı" sürücüsünün kullanım dışı bırakıldığını ve TLS 1.2'yi desteklemediğini belirten bir ileti alırsınız.

  • Uygulama sunucusu ODBC veri kaynağını başarıyla test etmek için SQL Server Native Client 11 kullanır. SQL Server Native Client 10.0 desteklenmiyorsa aşağıdaki hata iletisini alabilirsiniz:

    Bağlantı SQL Durumu: '08001' ile başarısız oldu SQL Server Hata: 10054 [Microsoft][SQL Server Native Client 10.0]TCP Sağlayıcısı: Var olan bir bağlantı uzak konak tarafından zorla kapatıldı. [Microsoft] [SQL Server Native Client 10.0] İstemci bağlantı kuramıyor.

    Uygulama sunucusu Diffie-Hellman algoritmasının eski sürümünü (v1) ve SQL Server daha yeni sürümü (v2) kullandığından bu ileti görüntülenebilir. Bu uyuşmazlık aralıklı TLS hatalarına neden olur.

Çözüm

Bu sorunları çözmek için şu adımları izleyin:

  1. bağlantı dizesi SQL Server Native Client 11 belirtin.

    Not

    Microsoft artık SNAC 11'i desteklememektedir. SNAC 11 kullanırken herhangi bir sorunla karşılaşırsanız, teknik destek sağlanabilmesi için önce Microsoft sürücüsünün desteklenen bir sürümüne yükseltmeniz gerekir.

  2. Uygulama sürücüsünü desteklenen bir sürücüye yükseltin.

  3. Bağlantı için şifreleme kullanmıyorsanız MSOLEDBSQL v18 veya ODBC v17 kullanın. Uygulama sunucusundaki bağlantı için şifreleme kullanıyorsanız, MSOLEDBSQL v19 veya ODBC v18 kullanın. Varsayılan olarak, bu sürücüler şifrelemeyle birlikte eklenir. Daha fazla bilgi için aşağıdaki makalelere bakın:

Ayrıca bkz.

Mevcut bir bağlantı uzak konak tarafından zorla kapatıldı (işletim sistemi hatası 10054)