Невозможно подключиться к базе данных SQL Server 2005 из службы Windows Vista x64 - PullRequest
1 голос
/ 23 декабря 2008

Я пытаюсь подключиться к удаленной базе данных SQL Server 2005 из службы Windows .NET, работающей в Vista Home Premium x64. Я могу получить доступ к удаленной БД из консольного приложения без проблем. Я могу подключиться к локальной базе данных из службы Windows без проблем. Я смог подключиться из службы из XP без проблем. Там нет брандмауэра или антивирус работает. Как мне настроить этот сервис для подключения к удаленной базе данных?

Я попытался подключиться, запустив службу Windows в качестве учетной записи локального администратора, LocalSystem, LocalService и NetworkService.

Строка подключения:

Источник данных = SERVER_NAME; Начальный каталог = DB_NAME; Интегрированная безопасность = True;

Ошибка:

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

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я также попытался подключиться с использованием аутентификации SQL Server, но безуспешно:

Источник данных = SERVER_NAME; ID пользователя = USER_ID; Пароль = PWD; Начальный каталог = DB_NAME

Эта строка подключения работает и из консольного приложения.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я запустил Process Monitor для службы Windows и консольного приложения. Служба Windows показала, что \ SERVER_NAME \ pipe \ sql \ query - ACCESS DENIED, но консольное приложение показало SUCCESS при чтении / записи файлов в \ SERVER_NAME \ pipe \ sql \ query.

Ответы [ 2 ]

1 голос
/ 23 декабря 2008

Господи! Почему все бредовые и сложные ответы на этом сайте. Создать учетную запись пользователя
Либо локальный, либо доменный и настройте сервис на использование этой учетной записи. Затем зайдите на свой SQL Server и добавьте новую учетную запись в базу данных и установите разрешения. Voila!

О да, не мучайте себя аутентификацией SQL. Интегрированная безопасность намного проще в обслуживании и без пароля в вашем веб-сайте.

0 голосов
/ 23 декабря 2008

1) открыть командную строку. Введите "ping SERVER_NAME". Это отвечает? У вас может быть проблема с DNS или подключением, если это не работает.

2) "telnet SERVER_NAME 1443". Вы видите что-нибудь или оно отказывается от вашей связи? Это определенно скажет вам, слушает ли кто-то на другом конце.

3) Зайдите в SQL Server Management Studio. Щелкните правой кнопкой мыши Свойства вашего сервера. Выберите «Соединения» с левой стороны. Проверен ли «Разрешить удаленные подключения»?

4) Поскольку вы работаете с использованием сетевой службы / системы, вам необходимо убедиться, что на вашем сервере настроено имя входа для учетной записи компьютера DOMAIN \ CLIENTSYSTEMNAME $. Обратите внимание на знак $. Это ваша учетная запись компьютера, и это будет пользователь, которого увидит SQL Server.

...