sql >> Databáze >  >> NoSQL >> MongoDB

Nelze se připojit k MongoDB (MongoLabs) prostřednictvím klienta C#

Pokud bych měl riskovat odhad, problém je s největší pravděpodobností problém s firewallem. Měli byste zkontrolovat následující

  • nslookup hostitele (ds048719.mlab.com) z hostitele aplikace C#
  • ping hostitele (ds048719.mlab.com) z hostitele aplikace C# (může selhat v závislosti na nastavení mLab)
  • Vaše IP adresa je na seznamu povolených
  • Otestujte připojení pomocí Mongo Shell ze stejného hostitele, kde běží aplikace C#. mLab má dokumenty zde.
  • Otestujte připojení pomocí nezpracovaného telnet , např. telnet ds048719.mlab.com 48719
  • Ujistěte se, že používáte správnou authenticationDatabase (ve vašem příkladu je to specifikováno pomocí /db ), to je obvykle admin ale může to být název vaší databáze, pokud jste na sdílené instanci.

Dokumenty o připojení k ovladači C# naleznete v dokumentech MongoDB C# Driver Docs. Je důležité si uvědomit následující:

Komponenta databáze

Komponenta databáze je volitelná a používá se k označení, proti které databázi se má autentizovat. Pokud není k dispozici komponenta databáze, použije se databáze „admin“.

mongodb://host:27017/mydb

Výše uvedená databáze s názvem „mydb“ je místo, kde jsou uloženy přihlašovací údaje pro aplikaci.

POZNÁMKA:

Některé ovladače využívají komponentu databáze k označení, se kterou databází se má ve výchozím nastavení pracovat. Ovladač .NET, zatímco analyzuje komponentu databáze, nepoužívá komponentu databáze pro nic jiného než autentizaci.

Nakonec bych v budoucnu navrhl, aby při odesílání do SO bylo zatemněno jméno hostitele a port. I když je zabezpečení prostřednictvím utajení samo o sobě špatnou politikou, určitě přidává vrstvu obrany pro vaše nasazení MongoDB.



  1. Jak mohu používat MongoDB s Flask?

  2. Vložený dokument bez pole?

  3. MongoDB:Jak se dotazovat na záznamy, kde je pole null nebo není nastaveno?

  4. Kterou databázi NoSQL bych měl použít pro protokolování?