Pregunta

Me está pasando una situación muy extraña y espero que alguien aquí sepa por qué.

Tengo TCP / IP habilitado para todos los puertos en el puerto predeterminado 1433.

Todas las pruebas son consistentes con SQL Server Management Studio y mi programa.

Esto funciona:

  • ComputerName \ InstanceName
  • 127.0.0.1
  • 127.0.0.1,1433
  • 192.168.1.100
  • 192.168.1.100,1433

Esto NO funciona:

  • 127.0.0.1 \ Nombre de instancia

Nota: Sé que no está relacionado con el firewall porque puedo hacer telnet al 127.0.0.1 en el puerto 1433.

Nota2: la cadena de conexión no importa ya que las pruebas son consistentes con Management Studio, pero le daré de todas formas: server = {0}; Integrated Security = True; Database = MyDatabase

Al leer MSDN, parece que debería poder conectarse a un nombre de instancia a través de una dirección IP.

¿Qué está pasando aquí?

¿Fue útil?

Solución

Nombrado Las instancias de SQL escuchan en un puerto aleatorio de forma predeterminada. Necesita el servicio SQL Browser iniciado, esto escucha UDP en 1434 y responde a las solicitudes de descubrimiento de instancias indicando al cliente el verdadero puerto de escucha. También debe permitir que el firewall haga agujeros en función del nombre del proceso, para que el SQL pueda enlazarse en cualquier puerto que se sienta.

De lo contrario, debe forzar explícitamente la instancia nombrada en el puerto no nombrado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top