MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Es kann keine Verbindung zu MongoDB (MongoLabs) über den C#-Client hergestellt werden

Wenn ich eine Vermutung wagen müsste, handelt es sich höchstwahrscheinlich um ein Firewall-Problem. Sie sollten Folgendes überprüfen

  • nslookup des Hosts (ds048719.mlab.com) vom C#-Anwendungshost
  • ping des Hosts (ds048719.mlab.com) vom C#-Anwendungshost (kann abhängig von den Einstellungen von mlab fehlschlagen)
  • Dass Ihre IP-Adresse auf der weißen Liste steht
  • Testen Sie die Verbindung mit der Mongo-Shell von demselben Host, auf dem die C#-Anwendung ausgeführt wird. mLab hat hier Dokumente.
  • Testen Sie die Verbindung mit einem rohen telnet , zB telnet ds048719.mlab.com 48719
  • Stellen Sie sicher, dass Sie die richtige authenticationDatabase verwenden (In Ihrem Beispiel wird dies durch /db angegeben ), ist dies normalerweise admin könnte aber Ihr Datenbankname sein, wenn Sie sich auf einer gemeinsam genutzten Instanz befinden.

Sie finden die Dokumentation zum Herstellen einer Verbindung mit dem C#-Treiber in der MongoDB C#-Treiberdokumentation. Folgendes ist zu beachten:

Die Datenbankkomponente

Die Datenbankkomponente ist optional und wird verwendet, um anzugeben, gegen welche Datenbank authentifiziert werden soll. Wenn die Datenbankkomponente nicht bereitgestellt wird, wird die „admin“-Datenbank verwendet.

mongodb://host:27017/mydb

Oben ist die Datenbank mit dem Namen „mydb“ der Ort, an dem die Anmeldeinformationen für die Anwendung gespeichert werden.

HINWEIS:

Einige Treiber verwenden die Datenbankkomponente, um anzugeben, mit welcher Datenbank standardmäßig gearbeitet werden soll. Während der .NET-Treiber die Datenbankkomponente analysiert, verwendet er die Datenbankkomponente für nichts anderes als die Authentifizierung.

Schließlich würde ich in Zukunft vorschlagen, den Hostnamen und den Port zu verschleiern, wenn Sie an SO posten. Obwohl Sicherheit allein durch Unklarheit eine schlechte Richtlinie ist, fügt sie Ihrer MongoDB-Bereitstellung sicherlich eine Verteidigungsebene hinzu.