2010-01-21 4 views
1

J'essaie de me connecter à une instance SQL nommée sur le serveur. Il existe déjà une instance par défaut de SQL Server 2005 et une instance récemment nommée - SQL Server 2008. J'utilise la propriété "Network library" pour utiliser la connexion TCP mais pour une raison quelconque, il essaye de connecter l'instance par défaut et omet une erreur à propos de l'erreur de connexion.Question sur la chaîne de connexion SQL Server

Si je supprime la bibliothèque réseau, la connexion est également établie sans erreur. J'utilise Windows authntication et j'ai toutes les permissions nécessaires.

La chaîne de connexion problématique:

Data Source = ServerName \ InstanceName, 1433; bibliothèque réseau = dbmssocn; Initial Catalog = MyDataBaseName, sécurité intégrée = SSPI

La chaîne de connexion de travail:

Data Source = ServerName \ InstanceName; initial Catalog = MyDataBaseName, sécurité intégrée = SSPI

Omission du , 1433; bibliothèque réseau = dbmssocn de la chaîne de connexion fait la différence. en ajoutant cela a fait le serveur pour relier l'instance deafult. Les deux serveurs permettent des connexions à distance.

Je voudrais comprendre pourquoi, s'il vous plaît. Merci à l'avance,

Tamir

+0

Vous avez également supprimé le numéro de port de la chaîne de connexion active, ce numéro de port est le port par défaut sur lequel l'instance par défaut sera en écoute – slugster

+0

Oui , merci, je l'ai supprimé aussi :), désolé si ce n'était pas clair – Tamir

+0

BTW, ceci est peut-être plus approprié pour serverfault.com – ConcernedOfTunbridgeWells

Répondre

3

Copié de ma réponse sur your question on ServerFault ...

Les chaînes de connexion ont 2 différences, donc je vais essayer de répondre à cette ...

  • Les instances nommées n'écoutent pas sur le port 1433 (uniquement l'instance par défaut par, heu, par défaut)
  • Le nom d'instance est ignoré lorsque le port est spécifié

Alors:

  • ServerName\InstanceName,1433 signifie se connecter au serveur "ServerName" sur le port 1433
  • ServerName\InstanceName signifie se connecter au serveur "Serv RÉNOM » et résoudre le nom d'instance pour le bon port (résolution utilise le port 1434 UDP)

Cependant, network library=dbmssocn signifie utiliser tcp. Il peut s'agir de l'instance SQL Server (voir port stuff) n'écoute pas sur tcp

1

Lors d'une estimation de 2005 et 2008 instances seraient à l'écoute sur des ports différents. Vous devez peut-être définir la chaîne de connexion pour l'instance SQL Server 2008 sur le port correct; vous pourriez rencontrer l'écouteur SQL Server 2005 et lui demander une instance qui n'est pas présente sur l'installation de 2005.

Sur quel port l'instance SQL Server 2008 est-elle écoutée - This article discusses the subject. et possède un script powershell qui interroge réellement le système pour savoir sur quel port le SGBD écoute réellement. Il parle aussi un peu de l'endroit où cette config vit dans le registre.