Следующий код работает так, как должен, если сервер работает, и если имя и пароль правильные. Однако, если я даю неправильное имя пользователя или пароль, он не дает мне обратной связи, но работает только при тайм-ауте при вызове метода Count.Аутентификация пользователя на MongoDB с помощью .NET Driver 2.4
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: API-интерфейс драйвера сильно изменился с 2,0 в январе 2016 года, что означает, что большинство веб-учебных материалов и сообщений на этом сайте больше не работают для текущей версии.
Благодаря вашему ответ. Мой клиент не имеет метода GetServer(). На какую версию вы ссылаетесь? Приведенный вами пример не предлагает решения. Указанный «auth failed» -Text не является частью исключения. Теперь его просто тайм-аут, и я до сих пор не могу понять, плохо ли пароль или кто-то отрезал кабель. – Otterprinz
из моего опыта исключения mongo еще не развиты до более высокого уровня. лучший способ убедиться, что вы получили соединение или нет, - это увидеть, подключены ли вы к серверу или нет. если у вас есть успешное соединение, вы должны иметь возможность опроса сервера. –
'client.GetServer()' является частью драйвера v.1. и был удален в v.2 – Sammy