我正在Mac上学习ASP.NET 5(vNext)。在最后一天,我一直试图连接到我的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加密未实现。
更新 我在Mac OS X上运行的框架中学习了加密isn't supported。出于这个原因,我更新了我的连接字符串,如下所示:
var connectionString = "Persist Security Info=False;Integrated Security=true;Initial Catalog=" + dbName + ";server=" + serverName + ";User Id=" + userId + ";Password=" + password;
但是,当我使用上面的连接字符串时,我收到以下错误。
类型:
System.Data.SqlClient.SqlException消息:
服务器不存在或连接被拒绝。
我已确认Azure未阻止我的IP地址。我通过登录Azure门户并从Silverlight应用程序管理SQL Server数据库来完成此操作。然而,我仍然不确定为什么我会收到这个错误。
如果我正确理解这一点,那么目前无法从运行在Mac上的ASP.NET 5连接到SQL Azure数据库。真的吗?如果不是这样,我做错了什么?
答案 0 :(得分:11)
如您所知,Mac上的vNext正在进行公开预览。
我们仍在努力提供SQL连接。 Mac上不支持SSL加密,Azure SQL DB需要SSL加密。该项目正在筹备中,一旦我们有分享内容,我们会通知您。
同时如果您有任何其他问题,请告诉我。
最佳,
认识Bhagdev
微软项目经理
答案 1 :(得分:4)
切换到使用mono作为构建目标。这应该允许您访问实体框架中的ssl。
答案 2 :(得分:3)
我知道这不是您正在寻找的答案,但SQL Azure 需要每https://msdn.microsoft.com/en-us/library/azure/ff394108.aspx个SSL。
我非常确定在OS X中添加SSL支持(通过Mono或CoreCLR)之后,您会陷入困境。