Nếu tôi phải phỏng đoán, vấn đề rất có thể là do tường lửa. Bạn nên kiểm tra những điều sau
-
nslookup
của máy chủ (ds048719.mlab.com) từ Máy chủ ứng dụng C # -
ping
của máy chủ (ds048719.mlab.com) từ Máy chủ ứng dụng C # (có thể không thành công, tùy thuộc vào cài đặt của mLab) - Địa chỉ IP của bạn nằm trong danh sách cho phép
- Kiểm tra kết nối bằng Mongo Shell từ cùng một máy chủ lưu trữ Ứng dụng C # đang chạy. mLab có tài liệu ở đây.
- Kiểm tra kết nối với
telnet
thô , ví dụ:telnet ds048719.mlab.com 48719
- Đảm bảo rằng bạn đang sử dụng đúng
authenticationDatabase
(trong ví dụ của bạn, điều này được chỉ định bởi/db
), đây thường làadmin
nhưng có thể là tên cơ sở dữ liệu của bạn nếu bạn đang sử dụng phiên bản dùng chung.
Bạn có thể tìm tài liệu về cách kết nối với trình điều khiển C # trong Tài liệu trình điều khiển C # của MongoDB. Điều quan trọng cần lưu ý là:
Thành phần cơ sở dữ liệu
Thành phần cơ sở dữ liệu là tùy chọn và được sử dụng để chỉ ra cơ sở dữ liệu nào cần xác thực. Khi thành phần cơ sở dữ liệu không được cung cấp, cơ sở dữ liệu "quản trị viên" sẽ được sử dụng.
mongodb://host:27017/mydb
Ở trên, cơ sở dữ liệu có tên “mydb” là nơi lưu trữ thông tin đăng nhập cho ứng dụng.
LƯU Ý:
Một số trình điều khiển sử dụng thành phần cơ sở dữ liệu để cho biết cơ sở dữ liệu nào sẽ hoạt động theo mặc định. Trình điều khiển .NET, trong khi phân tích cú pháp thành phần cơ sở dữ liệu, không sử dụng thành phần cơ sở dữ liệu cho bất kỳ điều gì khác ngoài xác thực.
Cuối cùng, tôi sẽ đề xuất trong tương lai, hãy làm xáo trộn tên máy chủ và cổng khi đăng lên SO. Mặc dù bảo mật thông qua che giấu chỉ là một chính sách tồi, nhưng nó chắc chắn bổ sung thêm một lớp bảo vệ cho việc triển khai MongoDB của bạn.