SQL Server 2008 удаленное соединение работает только один раз - PullRequest
0 голосов
/ 01 апреля 2009

Когда я подключаюсь к SQL Server 2008 удаленно, он работает только один раз, после чего сервер зависает. Служба не может быть остановлена ​​или перезапущена, и при попытке подключения снова выдается ошибка «Тайм-аут».

На сервере включены соединения TCP / IP. Порт по умолчанию установлен на 1433, и я очистил 0 от динамических портов. Я включил 127.0.0.1 IP и общедоступный IP и установил для них 1433 IP. Именованные каналы и другой протокол (Shared Memory или что-то) отключены.

Я подключаюсь с удаленного компьютера, используя пользователя 'sa' и надежный пароль. Сервер настроен на прием обоих режимов аутентификации.

Первое подключение с удаленного аппарата работает отлично. Запросы работы и данные могут быть получены из баз данных. После отключения и повторной попытки подключения выдается ошибка тайм-аута. Эта ошибка генерируется, потому что SQL Server где-то повешен. На этом этапе невозможно остановить или перезапустить службу SQL Server со служебного компьютера. Единственное решение - перезагрузить компьютер. Однако подключение к серверу локально из SQL Management Studio все еще работает.

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

1 Ответ

1 голос
/ 01 апреля 2009

исключили ли вы что-либо на сетевом уровне, например, программные или аппаратные брандмауэры, NAT'ы, прокси-серверы и т. Д.?

Используете ли вы SQL Server как экземпляр по умолчанию или именованный экземпляр?

если вы выполняете netstat, когда все работает, а затем, когда у вас заканчивается время, что вы видите?

Попробуйте запустить сетевой монитор или Wireshark на сервере, чтобы проверить, проходит ли запрос и отвечает ли сервер?

EDIT: Немного беспокоит то, что вы можете подключиться к серверу через порт 1433, когда сервер sql не работает, вы должны получить отказ в соединении (без брандмауэра) или тайм-аут (с брандмауэром)

Запустите на сервере профилировщик и выполните аудит входов / выходов, чтобы клиент мог видеть соединение? это может помочь вам решить проблему?

Попробуйте использовать тупой инструмент, например, переустановить драйвер подключения к серверу sql, например. mdac, sql родной на клиенте.

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