Jeśli miałbym zaryzykować zgadywanie, problem jest najprawdopodobniej związany z zaporą sieciową. Powinieneś sprawdzić następujące
nslookup
hosta (ds048719.mlab.com) z hosta aplikacji C#ping
hosta (ds048719.mlab.com) z hosta aplikacji C# (może się nie powieść, w zależności od ustawień mLab)- Twój adres IP jest na białej liście
- Przetestuj połączenie przy użyciu powłoki Mongo z tego samego hosta, na którym działa aplikacja C#. mLab ma tutaj dokumenty.
- Przetestuj połączenie za pomocą surowego
telnet
, np.telnet ds048719.mlab.com 48719
- Upewnij się, że używasz poprawnej
authenticationDatabase
(w twoim przykładzie jest to określone przez/db
), zwykle jest toadmin
ale może to być nazwa Twojej bazy danych, jeśli korzystasz ze współdzielonej instancji.
Dokumentację dotyczącą łączenia się ze sterownikiem C# można znaleźć w dokumentacji sterownika MongoDB C#. Należy zwrócić uwagę na następujące kwestie:
Komponent bazy danych
Składnik bazy danych jest opcjonalny i służy do wskazania bazy danych do uwierzytelnienia. Gdy komponent bazy danych nie jest dostarczany, używana jest baza danych „admin”.
mongodb://host:27017/mydb
Powyżej baza danych o nazwie „mydb” to miejsce, w którym przechowywane są poświadczenia aplikacji.
UWAGA:
Niektóre sterowniki wykorzystują komponent bazy danych, aby wskazać, z którą bazą danych mają pracować domyślnie. Sterownik .NET, podczas gdy analizuje komponent bazy danych, nie używa komponentu bazy danych do niczego innego niż uwierzytelnianie.
Na koniec sugerowałbym, aby w przyszłości zaciemnić nazwę hosta i port podczas wysyłania postów do SO. Chociaż samo zabezpieczenie przez ukrywanie jest złą polityką, z pewnością dodaje warstwę ochrony dla wdrożenia MongoDB.