2015-05-28 14 views
15

tôi đang học ASP.NET 5 (vNext) trên máy Mac của tôi. Đối với ngày cuối cùng, tôi đã bị mắc kẹt cố gắng để kết nối với cơ sở dữ liệu SQL Azure của tôi. Trong nỗ lực đó, tôi đã sử dụng mã sau:Đang kết nối đến cơ sở dữ liệu SQL Azure thất bại do thiếu mã hóa SSL

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);      
} 

Khi mã này được thực thi, ngoại lệ được ném. Các chi tiết ngoại lệ trông như thế này:

Loại:
System.NotImplementedException

nhắn:
mã hóa SSL cho dữ liệu được gửi giữa máy khách và máy chủ không được thực hiện.

CẬP NHẬT Tôi đã học được rằng mã hóa isn't supported trong khuôn khổ chạy trên Mac OS X vào lúc này. Vì lý do đó, tôi đã cập nhật chuỗi kết nối của mình trông giống như sau:

var connectionString = "Persist Security Info=False;Integrated Security=true;Initial Catalog=" + dbName + ";server=" + serverName + ";User Id=" + userId + ";Password=" + password; 

Tuy nhiên, khi tôi sử dụng chuỗi kết nối ở trên, tôi nhận được lỗi sau.

Loại:
System.Data.SqlClient.SqlException

nhắn:
Server không tồn tại hoặc kết nối bị từ chối.

Tôi đã xác nhận rằng địa chỉ IP của tôi không bị Azure chặn. Tôi đã làm điều này bằng cách đăng nhập vào Azure Portal và quản lý cơ sở dữ liệu SQL Server từ ứng dụng Silverlight. Tuy nhiên, tôi vẫn không chắc tại sao tôi lại gặp lỗi này.

Nếu tôi hiểu điều này một cách chính xác, không có một cách để kết nối với một cơ sở dữ liệu SQL Azure vào thời điểm này từ ASP.NET 5 chạy trên máy Mac. Điều đó có đúng không? Nếu nó không đúng, tôi đang làm gì sai?

+0

Bạn đang sử dụng khung làm việc nào? –

+0

@PanagiotisKanavos Tôi đang sử dụng ASP.NET 5 (vNext). Tôi đang cố kết nối thông qua 'Hệ thống.Data.SqlClient.SqlConnection' nằm trong gói '" EntityFramework.SqlServer ":" 7.0.0 - * "'. –

+0

Tôi gần hơn. Tôi đã cập nhật câu hỏi với nhiều chi tiết hơn. –

Trả lời

11

Như quý vị đã biết vNext trên Mac đang được xem trước công chúng.
Chúng tôi vẫn đang nỗ lực cung cấp kết nối SQL. Mã hóa SSL không được hỗ trợ trên máy Mac và Azure SQL DB yêu cầu một. Dự án nằm trong đường ống và chúng tôi sẽ cho bạn biết khi chúng tôi có thứ gì đó để chia sẻ.
Trong khi đó, nếu bạn có bất kỳ câu hỏi nào khác, vui lòng cho tôi biết.

nhất,
Gặp Bhagdev
Chương trình Manager, Microsoft

+1

Có bản cập nhật nào cho điều này không? – joshmcode

+0

Mọi cập nhật chưa? Điều này vẫn không có vẻ hỗ trợ - đó là một kịch bản quan trọng nếu bạn đang chạy bất kỳ máy chủ nào đánh một Azure SQL DB (đó là khá nhiều kịch bản máy chủ lõi) – Marchy

+0

Bảo mật tích hợp chưa có sẵn trên .NET Core. Tôi nghĩ đó là lý do tại sao bài đăng gốc không thành công. Bạn có thể thử xác thực SQL với SSL được kích hoạt để xem nếu nó hoạt động? (đặt 'mã hóa = true'). –

4

chuyển sang sử dụng mono như một mục tiêu xây dựng. Điều này sẽ cho bạn quyền truy cập vào ssl trong khung thực thể.

Các vấn đề liên quan