2011-12-26 2 views
0

эй кто-нибудь скажет мне, в чем проблема здесь?sql 2008 подключение к серверу

SqlConnection sqlConn = new SqlConnection(); 
sqlConn.ConnectionString = "server=zekyakad-7727\\sqlexpress.master.dbo;database=master;"; 
sqlConn.Open(); //error line 

Ошибка сообщения: произошла ошибка, связанная с сетью или конкретным экземпляром при установлении соединения с SQL Server. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (Поставщик: SQL Network Interfaces, ошибка: 26 - Ошибка Расположение сервера/Instance Указано)

ответ

1

Может быть любое количество вещей:

  • Строка соединения не является правильным
  • Там нет доступа к сети между компьютер работает в этом и SQL Server
  • Существует брандмауэр блокирует конкретные необходимых порты
  • SQL Server не работает
  • SQL Server не настроен на алло ж удаленные соединения
  • Вы не предоставили каких-либо полномочий или установить подключение к ОС Windows Auth
  • Пользователь не имеет права доступа для входа в SQL Server

Итак:

  • Убедитесь, что вы используете правильные строки подключения
  • Убедитесь, что SQL Server запущен
  • Проверьте сеть и вы можете подключиться к SQL Server
  • Настройка SQL Server для удаленных подключений
  • Убедитесь, что вы предоставляете действительные учетные данные

Чтобы быть более конкретным:

Вы устанавливаете Server в строке соединения будет:

zekyakad-7727\\sqlexpress.master.dbo 

Это не похоже на имя сервер. Вероятно, это должно быть zekyakad-7727.

Посмотрите на connectionstrings.com, чтобы увидеть, как должны выглядеть правильные строки подключения.

+0

oded посмотрите на его строку подключения .. что-то не видно .. – MethodMan

+0

@DJKRAZE - Совершенно верно. Я думал, что с этой строкой соединения нужно дать ему исчерпывающий список вещей, которые могут пойти не так ... – Oded

+0

Полностью согласен .. но мой глаз сразу поймал, что сразу ... то, что вы написали, абсолютно правильно .. – MethodMan

0

Вместо того, чтобы вводить соединительную строку таким образом, я предлагаю вам использовать SqlConnectionStringBuilder следующим образом. Это меньше подвержено ошибкам.

SqlConnection dataConnection = new SqlConnection(); 
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); 
builder.DataSource = ".\\SQLExpress"; // Your Datasource 
builder.InitialCatalog = "Northwind"; // Database Name 
builder.IntegratedSecurity = true; 
dataConnection.ConnectionString = builder.ConnectionString; 
dataConnection.Open(); 
+0

Или имейте это правильно сохранены и считаны из файла .config. – MethodMan

+0

ya, он может это сделать, но похоже, что он работает в консольном приложении, поэтому я не упомянул об этом :-) –

+0

@PankajUpadhyay - Консольные приложения могут иметь .config файлы. – Oded

1

Проверьте следующее.

  1. Убедитесь, что двигатель базы данных настроен на прием удаленных подключений • Пуск> Все программы> SQL Server 2005> Средства настройки> SQL Server Surface Area Configuration • Нажмите Настройка контактной зоны для служб и соединений • Выберите экземпляр, который имеет проблему> Database Engine> удаленные соединения • Включить локальные и удаленные соединения • Перезапуск экземпляра

  2. Проверка учетной записи службы SQL Server • Если вы не с нами учетной записи домена в качестве учетной записи службы (например, если вы используете NETWORK SERVICE), вы можете переключить ее первым, прежде чем продолжить

  3. Если вы используете именованный экземпляр SQL Server, убедитесь, что вы используете этот экземпляр имя в ваших строках подключения в вашем ASWeb приложения P.NET • Обычно формата, необходимый для указания сервера базы данных является имя_компьютер \ имя_экземпляра • Проверьте строку соединения, а также

  4. Вам может понадобиться создать исключение в брандмауэре для экземпляра и порта SQL Server, который вы используете

• Пуск> Выполнить> Firewall.cpl • Перейдите на вкладку исключений • Добавьте sqlservr.exe (обычно в C: \ Program Files (x86) \ Microsoft SQL Server \ MSSQL.x \ MSSQL \ Binn) и порт (по умолчанию 1433) • Проверьте строку соединения, а

<connectionStrings> 
<add name=”SampleConnectionString” connectionString=”Data Source=machinename\in 
stancename;Initial Catalog=AdventureWorks;Integrated Security=SSPI;Min Pool Size=5;Max  Pool Size=60;Connect Timeout=30″ providerName=”System.Data.SqlClient”/> 

</connectionStrings> 

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

6.Проверьте SQLBrowser; убедитесь, что он запущен. Вам также может потребоваться создать исключение в вашем брандмауэре для SQLBrowser.

7.Проверьте, что у вас есть подключение к SQL Server. Обратите внимание, что вы используете для подключения: имя машины, доменное имя или IP-адрес? Используйте это при проверке подключения. Например, если вы используете myserver • Пуск> Выполнить> cmd • netstat -ano | findstr 1433 • telnet myserver 1433 • ping -a myserver

Проверьте, какие порты IP-адреса возвращаются.

Альтернатива: Если вы все еще не можете получить какое-либо соединение, вы можете создать учетную запись SQL на сервере, соответствующий пользователь SQL в соответствующей базе данных, и просто использовать это имя пользователя/пароль в своей сети заявление.

Смежные вопросы