2017-08-16 40 views
7

Tôi đang sử dụng Visual Studio 2017 cho máy Mac có lõi tròn và lõi EF. Sau khi thiết lập hình ảnh mssql trong vùng chứa Docker, tôi đã cố thêm chuỗi kết nối nhưng lại ném lỗi kết nối. Tôi đã thử với các tùy chọn khác nhau như địa chỉ ip, tên container, tên máy chủ, vv .. như tên máy chủ nhưng không ai trong số họ làm việc.chuỗi kết nối cho sqlserver trong vùng chứa Docker

"Default": "Server=172.17.0.2; Database=ERPDb; User=sa; Password =******;" 

với tên chứa

"Default": "Server=ecstatic_hermann; Database=ERPDb; User=sa; Password=******;" 

với hostname:

"Default": "Server=f45840a59623; Database=ERPDb; User=sa; Password=******;" 

Trong khi kết nối thông qua sử dụng localhost trong Terminal của nó kết nối thành công

$ mssql -s localhost -p Technocrat123 
Connecting to localhost...done 

sql-cli version 0.6.2 
Enter ".help" for usage hints. 

Nhưng khi chạy ứng dụng tổn ion kết nối không thành công.

Đánh giá cao sự trợ giúp. Cảm ơn trước.

Nếu sử dụng localhost thì lỗi là

Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only. 
+0

là máy chủ sql đang chạy bên trong vùng chứa? Mã kết nối cũng có đang chạy bên trong một vùng chứa không? Nếu có cho cả hai, chúng có trên cùng một mạng không và nếu không, cổng SQL của máy chủ có bị lộ không? –

+0

@omu_negru Máy chủ sql đang chạy bên trong vùng chứa. Ứng dụng đang chạy bên trong máy không nằm trong vùng chứa. Làm thế nào để lộ cổng SQL? Bạn có thể vui lòng hướng dẫn cho tôi? – user2695433

+0

để lộ cổng MySql bằng cách chuyển tham số -p tới lệnh docker run: docker run -p 3306: 3306 ....... Cũng thiết lập máy chủ lưu trữ cho localhost, sau đó bạn có thể kiểm tra xem cổng có bị lộ bằng cách chạy docker hay không ps và kiểm tra phần cổng bên phải. –

Trả lời

0

Nhiều khả năng tên máy chủ của bạn là localhost và port 1401 (đó là mặc định cho thiết lập chứa Docker). Do đó, bạn sẽ cần phải sử dụng chuỗi kết nối sau:

"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;" 
Các vấn đề liên quan