Подключение к базе данных SQL Azure не удается из-за отсутствия шифрования SSL
Я изучаю ASP.NET 5 (vNext) на своем Mac. За последний день я застрял в попытке подключиться к базе данных SQL Azure. В этой попытке я использовал следующий код:
var serverName = "[protected]";
var dbName = "[protected]";
var userId = "[protected]";
var password = "[protected]";
var sql = "SELECT * FROM Customer";
using (var database = new SqlConnection("Server=tcp." + serverName + ".database.windows.net,1433;Database=" + dbName + ";User Id=" + userId + ";Password=" + password + ";Trusted_Connection=False;Encrypt=True;Max Pool Size=25"))
{
database.Open();
return await database.QueryAsync<T>(sql);
}
При выполнении этого кода генерируется исключение. Детали исключения выглядят следующим образом:
Тип:
System.NotImplementedException
Сообщение:
Шифрование SSL для данных, передаваемых между клиентом и сервером, не реализовано.
UPDATE
Я узнал, что шифрование не поддерживается в среде, работающей на Mac OS X в настоящее время. По этой причине я обновил строку подключения, чтобы она выглядела следующим образом:
var connectionString = "Persist Security Info=False;Integrated Security=true;Initial Catalog=" + dbName + ";server=" + serverName + ";User Id=" + userId + ";Password=" + password;
Тем не менее, когда я использую строку подключения выше, я получаю следующую ошибку.
Тип:
System.Data.SqlClient.SqlException
Сообщение:
Сервер не существует или соединение отклонено.
Я подтвердил, что мой IP-адрес не заблокирован Azure. Я сделал это, войдя в портал Azure и управляя базой данных SQL Server из приложения Silverlight. Тем не менее, я все еще не уверен, почему я получаю эту ошибку.
Если я правильно понимаю это, в настоящее время нет возможности подключиться к базе данных SQL Azure из ASP.NET 5, работающей на Mac. Это правда? Если это неверно, что я делаю неправильно?
Ответы
Ответ 1
Как вам известно, vNext на Mac находится под открытым предварительным просмотром.
Мы по-прежнему работаем над обеспечением подключения SQL. Шифрование SSL на Mac еще не поддерживается, но для этого требуется база данных Azure SQL. Проект находится в стадии разработки, и мы сообщим вам, когда у нас есть что поделиться.
Между тем, если у вас есть другие вопросы, пожалуйста, дайте мне знать.
Бест,
Знакомьтесь, Бхагдев
Менеджер программ, Microsoft
Ответ 2
Переключитесь на использование моно в качестве цели сборки. Это должно дать вам доступ к ssl в инфраструктуре сущностей.
Ответ 3
Я знаю, что это не тот ответ, который вы ищете, но SQL Azure требует SSL за https://msdn.microsoft.com/en-us/library/azure/ff394108.aspx.
Я уверен, что вы застряли до тех пор, пока поддержка SSL не добавится в OS X (через Mono или CoreCLR).