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,1433
bedeutet Verbindung zum Server "ServerName" auf Port 1433 herstellenServerName\InstanceName
bedeutet, 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=dbmssocn
TCP zu verwenden. Es könnte sein, dass die SQL Server-Instanz (siehe Port-Kram) nicht auf TCP hört