У меня есть SQL Server Express 2008 года, установленный на одной из моих машин, и я пытаюсь установить удаленное соединение... когда я использую MS SQL Server Management Studio, я могу войти в базу данных без каких-либо проблем (с тем же учетные данные), но когда я пытаюсь создать строку подключения в своем приложении C#, я получаю исключение:
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений.
Вот как выглядит моя строка подключения (личная информация изменена):
"Data Source="MACHINENAME\\SQLEXPRESS";User ID="Admin";Password="the_password";Initial Catalog="MyDatabase";Integrated Security=True;Connect Timeout=120");
Как я уже сказал, я могу войти в систему с помощью Management Studio с теми же настройками: тот же идентификатор пользователя, пароль и имя источника данных, но это не удается, когда я пытаюсь открыть соединение с указанной выше строкой подключения.
Примечание:
Я включил удаленное подключение к серверу, отключил брандмауэр, включил соединение TCP/IP с сервером, включил браузер SQL.
Строка подключения работает нормально, когда я нахожусь на той же машине.
Я посмотрел параметр «Интегрированная безопасность» и установил для него значение «ложь», чтобы убедиться, что он не пытается использовать вход в Windows, но все равно не удается.
База данных настроена так, чтобы разрешить вход в Windows и базу данных.
Я изменил параметр Integrated Security на SSPI, True и, наконец, False, все 3 дали мне ту же ошибку, что и выше.
Может ли кто-нибудь сказать мне, если я делаю что-то не так?
ОБНОВЛЕНИЕ, вот мой точный код (на этот раз удален только пароль, и я добавил изображение студии управления, работающей на той же машине):
string _connectionString =
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Connect Timeout=120", // Same problem
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Integrated Security=False;Connect Timeout=120", // Same problem
string.Format("Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Integrated Security=False;Connect Timeout=120", // Same problem
"GANTCHEVI\\SQLEXPRESS",
"FinchAdmin",
"the_password",
"Finch");
http://s113.photobucket.com/albums/n202/ozpowermo/?action=view¤t=ManagementStudio.jpg
http://s113.photobucket.com/albums/n202/ozpowermo/?action=view¤t=ManagementStudio.jpg
Я ПОНЯЛ ЭТО:
При использовании метки «Источник данных =» следует использовать «Идентификатор пользователя», если вы используете идентификатор пользователя, похоже, он не работает!
string _connectionString = "Data Source=GANTCHEVI\\SQLEXPRESS;Initial Catalog=Finch;Integrated Security=False;User Id=FinchAdmin;Password=the_password;Connect Timeout=0";"