Nome dell'istanza di SQL Server con indirizzo IP
-
06-07-2019 - |
Domanda
Ho una situazione molto strana e spero che qualcuno qui sappia perché.
Ho TCP / IP abilitato per tutte le porte sulla porta predefinita 1433.
Tutti i test sono coerenti con SQL Server Management Studio e il mio programma.
Funziona:
- ComputerName \ InstanceName
- 127.0.0.1
- 127.0.0.1,1433
- 192.168.1.100
- 192.168.1.100,1433
NON funziona:
- 127.0.0.1 \ InstanceName
Nota: so che non è collegato al firewall perché posso telnet in 127.0.0.1 sulla porta 1433.
Nota2: la stringa di connessione non ha importanza poiché i test sono coerenti con Management Studio, ma lo darò comunque: server = {0}; Integrated Security = True; Database = MyDatabase
Mentre leggi MSDN sembra che dovresti essere in grado di connetterti a un nome di istanza tramite un indirizzo IP.
Cosa sta succedendo qui?
Soluzione
Nome Le istanze SQL vengono ascoltate su una porta casuale per impostazione predefinita. È necessario il servizio Browser SQL , questo ascolta UDP 1434 e risponde alle richieste di rilevamento dell'istanza indicando al client la vera porta di ascolto. È inoltre necessario consentire al firewall di creare buchi in base al nome del processo, in modo che SQL possa collegarsi a qualsiasi porta si senta.
Altrimenti è necessario forzare esplicitamente l'istanza denominata sulla porta non denominata.