Почему О Почему VB.NET не подключается к этой базе данных? - PullRequest
0 голосов
/ 25 июня 2010

Прежде всего, я могу подключиться к обеим базам данных с помощью SQL Server Enterprise Manager, так что я знаю, что серверы работают и доступны. Один из них - SQL1, другой - SQLTEST.

В моей программе, когда я использую следующую строку подключения, она работает подключается просто отлично:

conn = New DBConnect("Data Source=SQL1;Initial Catalog=SignInspection;Integrated Security=SSPI")

Однако, если я изменю SQL1 на SQLTEST, время соединения истечет, я не получу никаких ошибок, кроме ошибки времени ожидания.

Я могу запустить профилировщик на SQLTest и увидеть, что он совершенно определенно даже не пытается подключиться. Ничего не происходит, ни писк, ни привет.

Есть идеи? Спасибо

EDIT:

Что ж, сейчас спорный вопрос, потому что у меня правильно работает аутентификация на нашем сервере SQL1.

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

Прежде всего, веб-сервер работает под управлением IIS и .NET. Пользователи входят в интрасеть с помощью Active Directory, и странице .NET необходимо получить свои учетные данные для входа (имя пользователя наиболее заметно). База данных - SQL Server 2005, работающая на другом компьютере. Но приложению .NET необходимо выдать себя за от имени другого пользователя для подключения к базе данных.

Чтобы успешно выполнить обе эти задачи, перейдите в Windows> Выполнить, введите inetmgr и нажмите Выполнить. Перейдите на сайт и щелкните правой кнопкой мыши> свойства, затем перейдите на вкладку под названием Безопасность каталогов , щелкните Изменить .. , убедитесь, что только Интегрированная Windows Аутентификация и Дайджест-аутентификация включены. Введите правильную область AD и нажмите OK. Применить настройки / нажать OK.

В web.config вам нужны следующие строки

<authentication mode="Windows" />
<identity impersonate="true" username="myDomain\MyUserName" password="123mypasswordgoeshere">

заменяя, конечно, myDomain \ MyUserName и 123mypasswordgoeshere именем пользователя и паролем, которые имеют права входа в систему как на вашем домене, так и на вашем сервере sql. Строка подключения, вероятно, может быть изменена, но она моя, и она работает:

Server=SQL1;Database=SignInspection;Trusted_connection=True;

Это шаги, которые сработали для меня, и, надеюсь, они пригодятся кому-то еще.

Ответы [ 2 ]

0 голосов
/ 25 июня 2010

Очевидный вопрос - есть ли в SQLTEST база данных под названием «SignInspection»?Также вы входите в SQLTEST через SQL Management Studio, используя проверку подлинности Windows или проверку подлинности SQL?Я ожидаю, что если бы из этих проблем вы получили исключение, но это стоит проверить.

0 голосов
/ 25 июня 2010

Когда вы подключались к менеджеру предприятия, это было с того компьютера, на котором вы запускаете код VB.Net?

В противном случае это может быть несколько вещей: от брандмауэра или DNS, как упоминает mdma, до установки с неправильным сетевым протоколом или, возможно, не приема удаленных подключений.

В этой статье содержится список вещей, на которые следует обратить внимание (это для SQL 2000, но это как минимум то, с чего можно начать).

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