如果服务器正在运行且用户名和密码正确,则以下代码可以正常工作。但是,如果我提供了错误的用户名或密码,它不会给我反馈,但只会在调用Count方法时遇到超时。
MongoClientSettings setts = new MongoClientSettings()
{
Server = new MongoServerAddress("127.0.0.1", 27017),
Credentials = new MongoCredential[] { MongoCredential.CreateCredential("TestDatabase", "username", "password") }
};
this.client = new MongoClient(setts);
this.client.Cluster.DescriptionChanged += this.ClusterDescriptionChanged;
var database = this.client.GetDatabase("TestDatabase");
var collection = database.GetCollection<BsonDocument>("SimpleCollection");
var count = collection.Count(MongoDB.Driver.FilterDefinition<BsonDocument>.Empty);
如何从驱动程序获取错误消息,如何检查是否是不适合的连接,用户或密码?
PS:自2016年1月2.0以来,驱动程序API发生了很大变化,这意味着此网站上的大多数网络教程和帖子不再适用于当前版本。
答案 0 :(得分:0)
获得客户端后,您可以检查连接是否成功
var server = client.GetServer();
server.Ping();
同样,最好将代码放在带有超时异常的try catch中,因为这是预期的。
有关此问题的详情,请参阅MongoDB C# Driver check Authentication status & Role