Я пытаюсь подключиться к именованному экземпляру SQL на сервере. Уже есть экземпляр по умолчанию SQL Server 2005 и новый именованный экземпляр - SQL Server 2008. Я использую свойство "Сетевая библиотека" для использования TCP-подключения, но по какой-то причине он пытается подключиться к экземпляру по умолчанию и пропускает ошибку об ошибке входа.
Если я удаляю сетевую библиотеку, соединение также устанавливается без ошибок.
Я использую аутентификацию Windows и имею все необходимые разрешения.
Проблемная строка подключения:
Источник данных=ИмяСервера\ИмяЭкземпляра,1433;сетевая библиотека=dbmssocn;Начальный каталог=ИмяМоейБазыДанных;Интегрированная безопасность=SSPI
Рабочая строка подключения:
Источник данных=ИмяСервера\ИмяЭкземпляра;НачальныйКаталог=ИмяМоейБазыДанных;Интегрированная безопасность=SSPI
Я хотел бы понять почему, пожалуйста. Спасибо заранее,
Тамир
решение1
В строках подключения есть два отличия, поэтому я постараюсь ответить на этот вопрос...
- Именованные экземпляры не прослушивают порт 1433 (только экземпляр по умолчанию, т.е. по умолчанию)
- Имя экземпляра игнорируется, если указан порт.
Так:
ServerName\InstanceName,1433
означает подключение к серверу "ServerName" на порту 1433ServerName\InstanceName
означает подключение к серверу «ServerName» и разрешение имени экземпляра для правильного порта (разрешение использует порт 1434 UDP)
Однако, network library=dbmssocn
означает использовать tcp. Это может быть экземпляр SQL Server (см. port stuff) не слушает tcp