Подключение к удаленному SQL Server 2008 из Windows Azure - PullRequest
2 голосов
/ 23 декабря 2009

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

System.Data.SqlClient.SqlException: ошибка, связанная с сетью или экземпляром, возникла при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске указанного сервера / экземпляра) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое 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, и у меня заканчиваются идеи.

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

Ответы [ 2 ]

4 голосов
/ 23 декабря 2009

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

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

См. Также Подключение из Azure к именованному экземпляру SQL Server

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

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

Если можете, войдите в систему и попробуйте:

telnet yoursqlserverhostname 1433

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

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