2015-07-09 3 views
7

Auswahl Ich versuche in mongolabs meine Mongo Datenbank zu implementieren, funktioniert alles einwandfrei,Ein Timeout nach 30000ms aufgetreten einem Server mit CompositeServerSelector

und ich erstellen Sie eine neue Datenbank in Mongo Labs, finden Sie meinen Connectionstring.

public DbHelper() 
    { 

     MongoClientSettings settings = new MongoClientSettings() 
     { 
      Credentials = new MongoCredential[] { MongoCredential.CreateCredential("dbname", "username", "password") }, 
      Server = new MongoServerAddress("ds011111.mongolab.com", 11111), 
      //ConnectTimeout = new TimeSpan(30000) 
     }; 

     Server = new MongoClient(settings).GetServer(); 

     DataBase = Server.GetDatabase(DatabaseName); 

    } 

aber wenn ich versuche, um die Datenbank connet es zeigt Fehler wie

enter image description here

Könnten Sie bitte einen Rat geben.

Danke

+4

Haben Sie gefunden, eine Lösung für Ihr Problem? Weil ich das gleiche Problem habe – RPDeshaies

+0

Ja, ich habe mich in Verbindung String-Gebäude verwechselt, so dass der Timeout-Fehler aufgetreten ist. Bitte beachten Sie die Antwort unten. –

+0

Mögliches Duplikat von [MongoDB C# 2.0 TimeoutException] (https://stackoverflow.com/questions/29832622/mongodb-c-sharp-2-0-timeoutexception) – kenorb

Antwort

9

Ich ersetze die Verbindungsstring-Methode in wie unten.

new MongoClient("mongodb://username:[email protected]:11111/db-name") 

Jetzt ist es gelöst.

Bitte beachten Sie die unten Kommentare von @Paul Lemke

+1

Ja, MongoLab mag keine neuen 'MongoSettings (new MongoUri ("...")) ' –

1

Stellen Sie sicher, Datenbank-Benutzernamen auch Groß- und Kleinschreibung. Ich lief in dieser Frage wegen der Groß- und Kleinschreibung von Benutzername

HTA :-)

+0

Danke für Ihre wertvolle Antwort. –

6

Add „? Verbinden = replicaSet“ bis zum Ende der Verbindungszeichenfolge, wenn auf MongoLab verbinden.

new MongoClient("mongodb://username:[email protected]:11111/db-name?connect=replicaSet") 

Diese JIRA-Ticket hat einige Details: https://jira.mongodb.org/browse/CSHARP-1160

Grundsätzlich ist die Standardeinstellung auf ein Replikat Element zu verbinden. MongoLabs Single-Node-Einstellungen sind jedoch tatsächlich ein Replikatsatz mit einem einzelnen Knoten. Dies führt dazu, dass wir ihm nicht vertrauen. Durch das Anfügen von? Connect = replicaSet an die Verbindungszeichenfolge wird der Treiber gezwungen, in den Replikatsatzmodus zu wechseln, und alles funktioniert.

Found that info here.

+1

Danke für Ihre wertvolle Antwort. –

Verwandte Themen