Frage zur SQL Server-Verbindungszeichenfolge

Frage zur SQL Server-Verbindungszeichenfolge

Ich versuche, eine Verbindung zu einer benannten SQL-Instanz auf dem Server herzustellen. Es gibt bereits eine Standardinstanz von SQL Server 2005 und eine neu benannte – SQL Server 2008. Ich verwende die Eigenschaft „Netzwerkbibliothek“, um eine TCP-Verbindung zu verwenden, aber aus irgendeinem Grund versucht er, eine Verbindung zur Standardinstanz herzustellen und einen Fehler bezüglich eines Anmeldefehlers zu vermeiden.

Wenn ich die Netzwerkbibliothek ordnungsgemäß entferne, wird die Verbindung ebenfalls ohne Fehler hergestellt.

Ich verwende die Windows-Authentifizierung und verfüge über alle erforderlichen Berechtigungen.

Die problematische Verbindungszeichenfolge:

Datenquelle=Servername\Instanzname,1433;Netzwerkbibliothek=dbmssocn;Anfangskatalog=MyDataBaseName;Integrierte Sicherheit=SSPI

Die funktionierende Verbindungszeichenfolge:

Datenquelle=Servername\Instanzname;Anfangskatalog=MyDataBaseName;Integrierte Sicherheit=SSPI

Ich würde gerne wissen, warum. Vielen Dank im Voraus,

Tamir

Antwort1

Die Verbindungszeichenfolgen weisen zwei Unterschiede auf, daher werde ich versuchen, darauf zu antworten …

  • Benannte Instanzen hören nicht auf Port 1433 (nur die Standardinstanz per, äh, Standard)
  • Der Instanzname wird ignoriert, wenn der Port angegeben ist

Also:

  • ServerName\InstanceName,1433bedeutet Verbindung zum Server "ServerName" auf Port 1433 herstellen
  • ServerName\InstanceNamebedeutet, eine Verbindung zum Server „ServerName“ herzustellen und den Instanznamen in den richtigen Port aufzulösen (für die Auflösung wird Port 1434 UDP verwendet)

Bedeutet jedoch, network library=dbmssocnTCP zu verwenden. Es könnte sein, dass die SQL Server-Instanz (siehe Port-Kram) nicht auf TCP hört

verwandte Informationen