C# 使用.NET驱动程序2.4对MongoDB上的用户进行身份验证

C# 使用.NET驱动程序2.4对MongoDB上的用户进行身份验证,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,如果服务器正在运行,并且usename和密码正确,则以下代码正常工作。但是,如果我输入了错误的用户名或密码,它不会给我反馈,只会在调用Count方法时超时 MongoClientSettings setts = new MongoClientSettings() { Server = new MongoServerAddress("127.0.0.1", 27017),

如果服务器正在运行,并且usename和密码正确,则以下代码正常工作。但是,如果我输入了错误的用户名或密码,它不会给我反馈,只会在调用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);
MongoClientSettings setts=新的MongoClientSettings()
{
服务器=新的MongoServer地址(“127.0.0.1”,27017),
Credentials=new MongoCredential[]{MongoCredential.CreateCredential(“TestDatabase”、“用户名”、“密码”)}
};
this.client=新的MongoClient(setts);
this.client.Cluster.DescriptionChanged+=this.ClusterDescriptionChanged;
var database=this.client.GetDatabase(“TestDatabase”);
var collection=database.GetCollection(“SimpleCollection”);
var count=collection.count(MongoDB.Driver.FilterDefinition.Empty);
如何从驱动程序获取错误消息,如何检查连接、用户或密码是否不合适?


PS:自2016年1月2.0版以来,驱动程序API发生了很大变化,这意味着该网站上的大多数Web教程和帖子不再适用于当前版本。

一旦获得客户端,您可以检查连接是否成功

var server = client.GetServer();
server.Ping();
另外,最好将代码封装在带有超时异常的try-catch中,因为这是预期的


有关这方面的更多信息,请参考

谢谢您的回答。我的客户端没有GetServer()方法。你指的是哪个版本?您链接的示例没有提供解决方案。提到的“身份验证失败”-文本不是异常的一部分。现在只是一个超时,我仍然无法确定密码是坏的还是有人切断了电缆。根据我的经验,mongo异常还没有发展到更好的水平。确保是否连接的最好方法是查看是否连接到服务器。如果连接成功,您应该能够轮询服务器。
client.GetServer()
是驱动程序v.1的一部分。并已在第2节中删除