Подключение клиента к MSSQL

Мне интересно, есть ли политика, которая может быть выдвинута по умолчанию, чтобы клиент всегда динамически определял порт для подключения. Я имею дело с пользовательским приложением C#, которое подключается к удаленному серверу SQL.
Подробности SQL Server Экземпляр SQL Server 2008 R2 STD Windows Server 2008 STD Строка подключения SQL приложения C# жестко задана для использования значения по умолчанию 1433 для подключения к данным. Однако имя сервера \ экземпляра является настраиваемым параметром. SQL Server настроен для привязки экземпляра к определенному IP-адресу и порту 1433 через менеджер конфигурации. Экземпляр также настроен для разрешения удаленных подключений, и нет проблем с брандмауэром, и я могу проверить это с помощью portqury.exe. Я также могу проверить, что sqlserver.exe прослушивает 1433 через netstat –abn. На сервере имеется только один экземпляр, и ни один из IP-адресов интерфейса не настроен для динамической конфигурации порта. Я хочу добавить, что я получаю те же результаты с включенным и отключенным браузером SQL. Но поскольку существует только один экземпляр, и я не использую динамический порт, мне не нужно использовать службу браузера SQL. Думаю, мне следует добавить, что порт 1434 был открыт и доступен во время тестирования с включенной службой браузера. Конфигурация SQL не обсуждается.

Поэтому, тестируя приложение C#, я не могу подключиться к серверу базы данных и получить разные ошибки из разных систем. Однако когда я тестирую подключение к экземпляру SQL через ODBC, я могу выполнить аутентификацию в системе (аутентификация SQL) и получить доступ к необходимой базе данных. Однако мне нужно внести изменения в конфигурацию клиента при добавлении соединения ODBC для тестирования. Выберите параметр для проверки подлинности SQL, а затем перейдите к параметрам конфигурации клиента и снимите флажок "Динамически определять порт", чтобы он указывал порт 1433 для подключения. После этого клиентское программное обеспечение может подключаться без каких-либо дополнительных проблем даже после удаления соединения ODBC, которое я использовал для тестирования.

Здесь мой главный вопрос. Существует ли политика, которая может заставить все соединения SQL из системы Windows XP, Windows 7 всегда использовать динамический порт для соединения данных? Почему приложение будет все еще подключаться к SQL через порт 1433 после удаления ODBC-соединения? Я думаю, я мог бы пойти немного дальше и выполнить трассировку процесса с помощью Process Explorer и использовать TCPView для проверки возможности подключения из свежей коробки к экземпляру SQL перед удалением опции из подключений ODBC для "" Динамически определять порт "в клиентской системе".,

Любое понимание или дополнительные пункты, чтобы проверить и исследовать далее было бы здорово. Я отправил это супер-пользователю, так как это похоже на проблему на стороне клиента, а не на конфигурацию сервера.

2 ответа

Сторона сервера настроена и привязана к порту 1433 по определенному IP-адресу. Проблема заключается именно в том, что клиентская сторона пытается согласовать динамический порт, когда он настроен на статический порт на сервере. В конечном итоге он стал настройкой клиента в своем AV-продукте, не позволяя подключиться к порту 1434 для конкретного приложения.

Я был в состоянии запросить порт динамически через ODBC, но не смог с пользовательским приложением. У меня не было доступа к AV-серверу управления или клиентскому паролю для просмотра заблокированных соединений. Так как я работал в среде, которой я полностью не управлял.

Настройка соединения ODBC на клиентском компьютере (работающем от имени администратора) должна позволить вам установить порт *, если я правильно помню.

Я предполагаю, что вы проверили это у Microsoft: как настроить SQL Server для прослушивания на конкретном порту http://support.microsoft.com/kb/823938

Или, в самом верху моей головы, Server Client Network Util на самом сервере?

Другие вопросы по тегам