J'essaie de déployer ma base de données Mongo dans Mongolabs, tout fonctionne correctement et je crée une nouvelle base de données. S'il vous plaît voir ma 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);
}
mais lorsque j'essaie de connecter la base de données, elle affiche une erreur comme:
Je remplace la méthode de la chaîne de connexion comme ci-dessous.
new MongoClient("mongodb://username:[email protected]:11111/db-name")
Maintenant, c'est résolu.
S'il vous plaît voir la réponse de Paul Lemke.
Ajoutez "? Connect = replicaSet" à la fin de votre chaîne de connexion si vous vous connectez à MongoLab.
new MongoClient("mongodb://username:[email protected]:11111/db-name?connect=replicaSet")
Ce billet JIRA contient quelques détails: https://jira.mongodb.org/browse/CSHARP-1160
Fondamentalement, la connexion par défaut à un membre du jeu de réplicas est utilisée. Mais les paramètres de noeud unique de MongoLab sont en réalité un ensemble de réplicas à noeud unique, ce qui nous empêche de lui faire confiance. Ajouter? Connect = replicaSet à votre chaîne de connexion forcera le pilote à passer en mode jeu de réplicas et tout fonctionnera.
Assurez-vous que le nom d'utilisateur de la base de données est également sensible à la casse. J'ai rencontré ce problème en raison de la sensibilité à la casse du nom d'utilisateur.
Assurez-vous que votre base de données d'authentification est définie correctement.
J'ai rencontré ce problème lorsque j'ai mentionné uniquement la base de données à laquelle je voulais me connecter, et ma base de données d'authentification était différente (autre que la base de données d'administration).
Le nom-bd de cette ligne est considéré comme le DB d'authentification.
new MongoClient("mongodb://username:[email protected]:11111/db-name?connect=replicaSet")
Ensuite, vous pouvez changer le DB sélectionné plus tard
mDb = mClient.GetDatabase(mongoDBName);
Same Error Message mais non rencontré avec un déploiement MongoLabs.
Je viens de rencontrer la même erreur répertoriée dans le titre avec une application Asp.Net Core. Mon problème était dû à un problème de configuration IOC.
Dans mon conteneur IOC, mon instance MongoClient encapsulée était configurée avec un mode de vie transitoire de dépendance.
Par le pilote MongoDb C #:
Il est recommandé de stocker une instance MongoClient dans un emplacement global, Sous forme de variable statique ou dans un conteneur IoC avec une durée de vie singleton .
J'ai promu le style de vie de mon objet à un singleton et cela a résolu le problème.
J'utilise:
Veuillez vous référer à la section Client du pilote C #: http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use