2009-12-23 2 views
2

Я пытаюсь подключиться к экземпляру SQL Server 2008 из рабочей роли Windows Azure (это не SQL Azure, а удаленная версия SQL Server 2008 Standard Edition), но я получаю следующее сообщение об ошибкеПодключение к удаленному SQL Server 2008 из Windows Azure

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

Фрагмент кода следующее :

using (var connection = new SqlConnection("MY CONNECTION STRING") 
{ 
    connection.Open(); 
    var command = new SqlCommand("Select 1", connection); 

    try 
    { 
    var res = command.ExecuteScalar(); 
    } 
    catch (Exception e) { 
    Log.Log("error", e.ToString()); 
    } 
} 

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

У меня нет настройки брандмауэра на экземпляре SQL Server 2008, и у меня заканчиваются идеи.

Может ли кто-нибудь определить, что я делаю неправильно здесь?

ответ

4

Я заметил некоторые проблемы с протоколом разрешения SQL Server (или браузером SQL Server) от рабочих ролей Azure при подключении к внешним экземплярам не-Azure SQL Server, работающим на портах, отличных от 1433. В этих случаях это может помочь явно указать TCP-порт экземпляра в строке соединения:

Data Source={domain/ip},{port}; 
Network Library=DBMSSOCN; 
Initial Catalog={dbname}; 
User ID={user}; 
Password={pw} 

Смотрите также Connect from Azure to an SQL Server Named Instance

+0

Действительно, на Azure UDP не ретранслируется сетью. –

1

Можете ли вы управлять экземпляром Azure через удаленный рабочий стол?

Если вы можете войти в систему и попробовать:

telnet yoursqlserverhostname 1433 

Если это блокирует, вы знаете, что сеть не настроена правильно. Обычно проблема брандмауэра на любом хосте или в сети между ними.

+0

нет, удаленный рабочий стол не доступен. –

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