SQL Server istemcileri, istemci bilgisayarlar bir SQL Server örneğine bağlanmaya çalıştığında protokolleri değiştirebilir

Bu makalede, istemci bilgisayarlar bir SQL Server örneğine bağlanmaya çalıştığında istemcilerin protokolleri değiştirebileceği SQL Server tanıtılır.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 328383

Özet

Microsoft Veri Erişim Bileşenleri (MDAC) sürüm 2.6 veya üzeri olan istemci bilgisayarlar, SQL Server bağlantı kurmak için birden çok protokol veya İşlemler Arası İletişim (IPC) mekanizmasını deneyebilir.

Daha fazla bilgi

MDAC sürüm 2.6 ve üzeri için Dbnetlib.dll istemci tarafı ağ kitaplığında bir geliştirme yapılmıştır. MDAC sürüm 2.6 ve üzeri ile birden çok protokol varsa ve ilk protokolle bağlantı girişimi başarısız olursa istemci uygulaması hemen diğer protokollerden birini kullanmayı dener.

Varsayılan olarak, istemcilerin kullanılabilir protokoller olarak TCP ve Adlandırılmış Kanallar vardır. SQL Server İstemci yardımcı programını kullanarak protokol sıralamasını değiştirebilirsiniz. İstemci uygulaması protokolleri istemci bilgisayarda belirtilen sırayla kullanır. Protokol sırası, ProtocolOrder değeri altında aşağıdaki kayıt defteri anahtarı konumunda depolanır:

HKLM\Software\Microsoft\MSSQLServer\Client\SuperSocketNetLib

SQL Server 2005 kullanıyorsanız, protokol sırası aşağıdaki kayıt defteri alt anahtarı altındaki ProtocolOrder kayıt defteri girdisinde depolanır:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI<version>

Örneğin, bir istemci bilgisayarda hem TCP hem de Adlandırılmış Kanallar varsa ve sıra şu şekildeyse:

  • TCP
  • Adlandırılmış Kanallar

İstemci bilgisayar sunucuya TCP bağlantısı kurmaya çalıştığında ve bağlantı girişimi sıfır olmayan bir dönüş kodu döndürdüğünde, istemci listedeki bir sonraki protokolü (Adlandırılmış Kanallar) kullanarak bağlantıyı saydam bir şekilde dener. Bu senaryoda, istemci TCP bağlantısı yapamaz; ancak istemci, Adlandırılmış Kanallar bağlantısını başarıyla yapar.

Not

İstemci, ilk protokolün başarısız olduğunu belirten bir hata almaz.

İstemci uygulaması ikinci protokolü kullanıyorsa ve bir hata da döndürüyorsa, istemciye bir hata döndürülür.

Aşağıdaki yöntemlerden birini kullanarak bir diğer ad oluşturursanız, istemci uygulaması sunucuyla bağlantı kurmak için diğer ad bilgilerini kullanır ve ek protokol kullanmaz.

  • SQL Server İstemci Ağı yardımcı programını kullanarak
  • SQL Server Yapılandırma Yöneticisi kullanarak
  • ODBC veri kaynağı adı (DSN) oluşturduğunuzda

İstemci uygulamasının her bağlantı girişimi için kullandığı protokolü denetlemek ve istemcinin birden çok protokolü denemesine izin vermek istemiyorsanız, aşağıdakilerden birini yapabilirsiniz:

  • Tercih ettiğiniz protokolü belirterek diğer ad oluşturmak için SQL İstemci Ağı yardımcı programını veya SQL Server Yapılandırma Yöneticisi kullanın.

  • bağlantı dizesi protokolü belirtin. Örneğin:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBMSSOCN;Address=IP_Address,1433;UID=YourUID;PWD=YourPassword;
    

    Bu örnekte, ağ protokollerini olarak DBMSSOCNbelirtirsiniz. Bu, TCP/IP protokollerini kullanmak istediğiniz anlamına gelir. bağlantı dizesi içinde protokolü belirtirseniz, Dbnetlib yalnızca belirtilen protokolü kullanır ve başka bir protokolü denemez. Benzer şekilde, yalnızca Adlandırılmış Kanal protokollerini etkinleştirmek için şuna benzer bir bağlantı dizesi kullanın:

    DSN=DSNName;SERVER=servername;DATABASE=YourDataBaseName;Network=DBNMPNTW;Address=\\.\pipe\sql\query;UID=YourUID;PWD=YourPassword;
    
  • Diğer protokolleri kaldırmak için İstemci Ağı yardımcı programını kullanın.

BAŞVURU

SQL Server bağlantı hatalarını çözme