Назад | Перейти на главную страницу

Не удается подключиться к серверу SQL на сервере разработки

Я использую VS2008 на своем локальном компьютере для написания приложения ASP.Net. Наш экземпляр SQL Server 2008 размещен удаленно на выделенном сервере базы данных. Я могу подключиться к серверу через свое приложение как на моем локальном компьютере, так и на рабочем сервере, но не на нашем сервере разработки.

Я открыл порт 1433 на сервере разработки, но это не сработало. Строка подключения одинакова на обоих серверах. И производственный сервер, и сервер разработки используют Windows Server 2008. Я получаю ошибку

Произошла ошибка, связанная с сетью или конкретным экземпляром, при установке соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)

РЕДАКТИРОВАТЬ: Я думаю, я должен прояснить, что SQL Server управляется хостинговой компанией, за которую мы платим, поэтому у меня нет доступа к какой-либо конфигурации этого сервера. Кроме того, насколько мне известно, сервер работает нормально, так как я могу подключаться к нему из 2/3 разных мест через свое приложение.

РЕДАКТИРОВАТЬ 2: Получается, что один из маршрутизаторов в нашем офисе блокировал трафик через порт 1433. Спасибо, Брайан, за вашу постоянную помощь.

Ясно, что конфигурация сервера в порядке, поскольку вы объяснили, что вы уже можете подключаться из других удаленных систем, но у вас есть проблемы с этой конкретной системой. Вы можете разрешить и пропинговать сервер из своей системы разработки, но кажется, что вы не можете подключиться к порту SQL (1433). Как Энди уже отмечал в комментариях, это, вероятно, связано с тем, что брандмауэр между вашей системой разработки и сервером SQL может блокировать ваши попытки подключения.

Вы можете проверить соединение с SQL-сервером с помощью telnet (очевидно, замените имя хоста на имя вашего SQL-сервера).

telnet sql.server.com 1433

Если вы видите ответ, похожий на:

Trying sql.server.com...
Connected to sql.server.com.
Escape character is '^]'

... тогда это не проблема брандмауэра, однако, если вы видите сообщение, подобное:

Unable to connect to remote host

... то почти наверняка вас блокирует брандмауэр.

Есть хорошая статья MSDN, в которой объясняется, как устранение неполадок при подключении к SQL-серверу, в котором рассказывается гораздо подробнее.

Попробуйте принудительно установить тип TCP-соединения (похоже, что у именованных каналов более высокий приоритет). Измените серверную часть строки подключения на server=tcp:hostname,1433.