SQL Server-Instanznamen mit IP-Adresse
-
06-07-2019 - |
Frage
Ich habe eine sehr seltsame Situation passiert, und ich bin der Hoffnung, jemand hier weiß, warum.
Ich habe TCP / IP für alle Ports auf dem Standard-Port 1433 freigegeben.
Alle Tests sind konsistent mit SQL Server Management Studio und mein Programm.
Das funktioniert:
- Computername \ InstanceName
- 127.0.0.1
- 127.0.0.1,1433
- 192.168.1.100
- 192.168.1.100,1433
Das funktioniert nicht:
- 127.0.0.1 \ InstanceName
. Hinweis: Ich weiß, dass es nicht im Zusammenhang Firewall, weil ich in 127.0.0.1 auf Port 1433 telnet
Hinweis 2: Die Verbindungszeichenfolge keine Rolle spielt, da die Tests im Einklang mit Management Studio, aber ich werde es trotzdem: server={0};Integrated Security=True;Database=MyDatabase
Während MSDN Lesen scheint es, dass Sie auf eine Instanz Namen über eine IP-Adresse zu verbinden, sollte in der Lage.
Was ist denn hier los?
Lösung
Namen SQL-Instanzen hören auf einem zufälligen Port standardmäßig. Sie müssen SQL-Browser Dienst gestartet, dies hört UDP auf 1434 und reagiert auf Instanz Entdeckung fordert der Client den wahren Abhörport anweist. Sie müssen auch die Firewall ermöglichen Löcher zu stecken, basierend auf den Prozessnamen, so dass SQL an jedem Port binden kann es sich anfühlt.
Ansonsten müssen Sie explizit die benannte Instanz auf dem nicht benannter erzwingen.