Вопрос

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

У меня включен 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 мог привязываться к любому порту, который ему нужен.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top