Я занимаюсь разработкой веб-API C# MVC, который использует MongoDB в качестве backend.I попытался подключения к базе данных MongoDB с использованиемНевозможно подключиться к MongoDb используя MongoClientSettings в качестве параметра MongoClient
MongoClient mongoClient = new MongoClient(connectionString)
где ConnectionString в формате: mongodb://Username:[email protected]
Монго дб размещено в виртуальной машине в Azure.I может подключиться к базе данных и все работает good.But Я получаю частые исключения:
«MongoDb.driver.MongoConnectionException». Исключение произошло в то время как receivinf сообщение с сервера ---> System.IO.IOException: не удалось прочитать данные из транспортного соединения: попытка подключения завершилась неудачно , потому что подключенная сторона не правильно реагировать после периода времени, ......»
Так после немного исследований я узнал, что Azure убивает неактивные соединения, и я должен установить MaxConnectionIdleTime
.
Для того, чтобы установить MaxConnectionIdleTime я решил подключиться к MongoDB в ниже пути
var credential = MongoCredential.CreateCredential("dbname", "UserName", "Password");
var settings = new MongoClientSettings
{
Credentials = new[] { credential },
Server = new MongoServerAddress("HostName", 27017),
MaxConnectionIdleTime = new TimeSpan(0, 3, 0)
};
MongoClient mongoClient = new MongoClient(settings);
В этом случае я использую один и тот же логин, пароль комбинации приведены в строке подключения, который я использовал для подключения раньше.
При попытке подключения здесь я получаю внутреннее исключение:
MongoDB.Driver.MongoAuthenticationException: "Не удалось проверить подлинность с использованием механизма протокола SASL SCRAM-SHA-1".