wake-up-neo.net

Nach 30000 ms trat ein Timeout auf, wenn ein Server mit CompositeServerSelector ausgewählt wurde

Ich versuche, meine Mongo-Datenbank in Mongolabs bereitzustellen, alles funktioniert gut und ich erstelle eine neue Datenbank. Bitte sehen Sie meine Verbindungszeichenfolge.

    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, die Datenbank zu verbinden, zeigt es einen Fehler wie:

enter image description here

9
Ragesh S

Ich ersetze die Verbindungszeichenfolge wie unten. 

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

Jetzt ist es gelöst.

Bitte sehen Sie die Antwort von Paul Lemke.

13
Ragesh S

Fügen Sie am Ende Ihrer Verbindungszeichenfolge "? Connect = replicaSet" ein, wenn Sie eine Verbindung zu MongoLab herstellen. 

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

Dieses JIRA-Ticket enthält einige Details: https://jira.mongodb.org/browse/CSHARP-1160

Im Allgemeinen wird standardmäßig eine Verbindung zu einem Replikatsatzmitglied hergestellt. Die MongoLab-Einzelknoteneinstellungen sind jedoch tatsächlich ein Replikatsatz für einen einzelnen Knoten. Dies führt dazu, dass wir dem nicht vertrauen. Das Anhängen von? Connect = replicaSet an Ihre Verbindungszeichenfolge zwingt den Treiber, in den Replikatsatzmodus zu wechseln, und alle werden funktionieren.

Hab diese Info hier gefunden.

11
Paul Lemke

Stellen Sie sicher, dass Ihre aktuelle IP-Adresse auf dem Mongodb-Server auf der Whitelist steht. Wenn Sie Ihren Internetprovider wechseln, muss eine neue IP-Adresse auf der weißen Liste stehen.

1
pankaj upadhyay

Stellen Sie sicher, dass der Datenbank-Benutzername auch die Groß- und Kleinschreibung berücksichtigt. Ich bin auf dieses Problem gestoßen, wegen der Groß- und Kleinschreibung des Benutzernamens.

1
Ramakrishna

Stellen Sie sicher, dass Ihre Auth-Datenbank korrekt eingestellt ist.

Ich bin auf dieses Problem gestoßen, als ich nur die DB erwähnte, mit der ich mich verbinden wollte, und meine Auth-Datenbank war anders (außer Admin-DB).

Der db-name in dieser Zeile wird als auth-DB betrachtet.

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

Dann können Sie den ausgewählten DB später ändern

mDb = mClient.GetDatabase(mongoDBName);
1
vikky MCTS

Gleiche Fehlermeldung, aber bei einer MongoLabs-Bereitstellung nicht aufgetreten.  

Ich bin gerade mit dem Asp.Net Core App auf den gleichen Fehler gestoßen. Mein Problem war auf ein Konfigurationsproblem von IOC zurückzuführen.

In meinem IOC-Container wurde meine umwickelte MongoClient-Instanz mit einem vorübergehenden Lebensstil für Abhängigkeiten konfiguriert. 

Per MongoDb C # -Treiber: 

Es wird empfohlen, eine MongoClient-Instanz an einem globalen Ort Entweder als statische Variable oder in einem IoC-Container mit einer Lebensdauer von [...] Singleton Zu speichern.

Ich habe den Lebensstil meines Objekts zu einem Einzelgänger befördert, und das Problem wurde gelöst.

Ich benutze: 

  • .Net Core 2.0 
  • Mongo C # Treiber Version 2.5 
  • Castle Windsor für meine IOC Version 3.3.0

Bitte verweisen Sie auf den Abschnitt C # Driver Client: http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use

0
Brennan Mann