Имя экземпляра SQL Server с IP-адресом - PullRequest
3 голосов
/ 23 октября 2009

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

У меня включен 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

Примечание: я знаю, что это не связано с брандмауэром, потому что я могу подключиться к 127.0.0.1 через порт 1433.

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

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

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

1 Ответ

9 голосов
/ 23 октября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...