Получение "TimeoutException" при попытке извлечь данные из MongoDB
Я использую C# для подключения к серверу MongoDB, используя официальный MongoDB.Driver с версией 2.2.24.26.
Мой код выглядит так:
internal BsonArray Find(string ConnectionString, string collection, string filter)
{
Uri u = new Uri(ConnectionString);
string database = u.LocalPath.Trim(new char[] { '/' });
IMongoDatabase _db = new MongoClient(ConnectionString).GetDatabase(database);
IMongoCollection<BsonDocument> col = _db.GetCollection<BsonDocument>(collection);
return BsonArray.Create(col.Find(BsonDocument.Parse(filter)).ToList());
}
Он работает как шарм (он заканчивается менее чем за 0,5 секунды), если строка подключения
mongodb://localhost:27017/my_db
Как только я хочу использовать аутентификацию, я всегда сталкиваюсь с таймаутом.
mongodb://user:password@localhost:27017/my_db
Операция, потребляющая все время - это "ToList()". Список в моих тестах содержит 136 записей. Я что-то пропустил?
Изменить: Извините за неправильную тему в первую очередь. Я не знаю, как тема из совершенно не связанной с этим проблемы появилась здесь...
1 ответ
Я нашел проблему. MongoDB, похоже, возвращает TimeoutException, если учетные данные неверны. Я случайно добавил пользователя, которого хотел использовать, в неправильную базу данных и, следовательно, не смог войти в исходную базу данных с ним. Исключение заставило меня искать проблему в совершенно неправильном направлении:/
При использовании неверных учетных данных выглядит странно, но это только мое мнение.