Подключение к SQL Server 2000 на контроллере домена Windows Server 2003 - PullRequest
0 голосов
/ 12 октября 2011

Я пытаюсь подключить приложение ASP.NET 2.0, размещенное на клиентской машине, к экземпляру SQL Server 2000, который установлен на контроллере домена под управлением Windows Server 2003 (я ценю это не лучшая практика, но яневозможно изменить).Я использую проверку подлинности сервера SQL, а не проверку подлинности Windows.

Во время отладки в момент попытки «подключения» в веб-приложении отображается ошибка (не при запуске какого-либо объекта на Sql Server):

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

Я провел некоторое исследование и проверил множество вещей:

1) Я уверен, что соединениестрока верна - на самом деле я создал небольшое приложение для Windows, которое использует ту же информацию о соединении, и соединение установилось успешно ...

2) Это ограничено веб-приложением - приложение Windows, работающее на удаленном клиентском компьютере, подключаетсяпросто отлично, используя ту же строку подключения (см. 1).

3) Настройки брандмауэра на обоих компьютерах не препятствуют подключению (см. 1).

4) Я могу пропинговать сервер Windows 2003 (см. 1)

5) SQL Serverучетные данные определенно имеют права на необходимые объекты

6) Если я (временно) помещаю веб-приложение на Windows Server 2003 и запускаю его, оно загружается и работает нормально (с помощью браузера на отдельной машине илина клиентском компьютере, к которому я пытаюсь подключиться) - предположить, что это проблема только с удаленным подключением, и снова подтвердить подключение между компьютерами, а также подтвердить необходимые права безопасности пользователя SQL Server.

7) Я могу запустить анализатор запросов на клиентском компьютере и, используя те же учетные данные SQL-сервера, могу нормально выполнять те же запросы в целевой базе данных.

Stumped.Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Из-за исследования, которое я провел в первоначальном вопросе, касающегося возможности подключения приложения для Windows, но не приложения ASP.NET для подключения с того же компьютера, и подтверждения того, что веб-приложение работает на самом сервере, я был убежден, что сервер SQL настроен правильно, что подключение и брандмауэры не были проблемой - это, должно быть, различие в учетных данных безопасности приложения для Windows и веб-приложения.

Приложение Windows запускается с учетными данными безопасности вошедшего в систему пользователя Windows и аутентифицируется с его помощью, тогда как веб-приложение запускается с ограниченной учетной записью и не передает эти учетные данные при подключении к серверу SQL по умолчанию. Я просто добавил в web.config, который олицетворяет учетную запись пользователя, под которой запускается веб-приложение, и все заработало!

Проблема решена.

0 голосов
/ 12 октября 2011

Вам необходимо зайти в диспетчер конфигурации SQL Server и убедиться, что опция Named Pipes включена. Он не включается по умолчанию при установке SQL Server.

...