Имя экземпляра SQL Server с IP-адресом

2

У меня очень странная ситуация, и я надеюсь, что кто-то знает почему.

У меня есть TCP/IP для всех портов на стандартном порту 1433.

Все тесты совместимы с SQL Server Management Studio и моей программой.

Это работает:

  • Имя_компьютера\InstanceName
  • 127.0.0.1
  • 127.0.0.1,1433
  • 192.168.1.100
  • 192.168.1.100,1433

Это НЕ работает:

  • 127.0.0.1\InstanceName

Примечание. Я знаю, что это не связанный с брандмауэром, потому что я могу telnet в 127.0.0.1 на порт 1433.

Примечание2: Строка подключения не имеет значения, поскольку тесты совместимы с Management Studio, но я все равно дам: server={0};Integrated Security=True;Database=MyDatabase

При чтении MSDN кажется, что вы должны иметь возможность подключиться к имени экземпляра через IP-адрес.

Что здесь происходит?

Теги:
sql-server
connection-string

1 ответ

7
Лучший ответ

Именованные экземпляры SQL прослушивают случайный порт по умолчанию. Вам нужно служба SQL Browser, это прослушивает UDP на 1434 и отвечает на запросы обнаружения экземпляра, инструктируя клиента истинным портом прослушивания. Также вам необходимо разрешить брандмауэру вызывать отверстия на основе имени процесса, чтобы SQL мог связываться на любом порту, который он чувствует.

В противном случае вы должны явно принудительно привести именованный экземпляр на неименованный порт.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню