Имя экземпляра SQL Server с IP-адресом
-
06-07-2019 - |
Вопрос
У меня происходит очень странная ситуация, и я надеюсь, что кто-нибудь здесь знает, почему.
У меня включен TCP/IP для всех портов на порту по умолчанию 1433.
Все тесты соответствуют SQL Server Management Studio и моей программе.
Это работает:
- ИмяКомпьютера\ИмяЭкземпляра
- 127.0.0.1
- 127.0.0.1,1433
- 192.168.1.100
- 192.168.1.100,1433
Это не работает:
- 127.0.0.1\Имяэкземпляра
Примечание:Я знаю, что это не связано с брандмауэром, потому что я могу подключиться к 127.0.0.1 через порт 1433.
Заметка 2:Строка подключения не имеет значения, поскольку тесты соответствуют Management Studio, но я все равно ее приведу: server={0};Integrated Security=True;Database=MyDatabase
При чтении MSDN кажется, что вы сможете подключиться к имени экземпляра через IP-адрес.
Что тут происходит?
Решение
Именованный По умолчанию экземпляры SQL прослушивают случайный порт.Тебе нужно SQL-браузер служба запущена, она прослушивает UDP на 1434 и отвечает на запросы обнаружения экземпляра, сообщая клиенту истинный порт прослушивания.Вам также необходимо разрешить брандмауэру проделывать дыры на основе имени процесса, чтобы SQL мог привязываться к любому порту, который ему нужен.
В противном случае вам придется явно принудительно использовать именованный экземпляр на неименованном порту.