Истекло время ожидания после 30000 мс выбора сервера с помощью CompositeServerSelector

Я пытаюсь развернуть свою базу данных Mongo в Mongolabs, все работает нормально, и я создаю новую базу данных. Пожалуйста, посмотрите мою строку подключения.

    public DbHelper()
    {

        MongoClientSettings settings = new MongoClientSettings()
        {
            Credentials = new MongoCredential[] { MongoCredential.CreateCredential("dbname", "username", "password") },
            Server = new MongoServerAddress("ds011111.mongolab.com", 11111),
            //ConnectTimeout = new TimeSpan(30000)
        };

        Server = new MongoClient(settings).GetServer();

        DataBase = Server.GetDatabase(DatabaseName);

    }

но когда я пытаюсь подключиться к базе данных, появляется ошибка, например:

введите описание изображения здесь


person Ragesh S    schedule 09.07.2015    source источник
comment
Да, я ошибся при построении строки подключения, поэтому произошла ошибка тайм-аута. См. Ответ ниже.   -  person Ragesh S    schedule 17.07.2015
comment
Возможный дубликат MongoDB C # 2.0 TimeoutException   -  person kenorb    schedule 18.10.2017
comment
У меня была эта ошибка, потому что порт в моей строке подключения не соответствовал порту в моей локальной конфигурации и настройках mongo db. Как только они совпали, эта ошибка исчезла.   -  person AussieJoe    schedule 13.03.2021
comment
@AussieJoe отлично   -  person Ragesh S    schedule 13.03.2021


Ответы (10)



Я заменяю метод строки подключения, как показано ниже.

new MongoClient("mongodb://username:[email protected]:11111/db-name")

Теперь это решено.

См. Ответ Пола Лемке.

person Ragesh S    schedule 17.07.2015
comment
Ага, MongoLab не любит новые MongoSettings(new MongoUri("...")) - person Chris S; 08.08.2016
comment
Почему вы не отметили его ответ как решение? - person Rodrigo Reis; 10.07.2021

Убедитесь, что ваш текущий IP-адрес внесен в белый список на сервере mongo db. Если вы меняете своего интернет-провайдера, новый IP-адрес должен быть внесен в белый список.

person pankaj upadhyay    schedule 22.04.2019
comment
@RamyDeeb Это не только для пользователя, который его опубликовал, но и для тех, кто сталкивается с подобными проблемами и просматривает соответствующие ответы. - person Komal Bansal; 18.06.2020
comment
@RamyDeeb ответ предоставил его также для других, у кого такая же проблема, и которые могут искать другие возможные решения. Пожалуйста, если у вас когда-либо будет другое решение, просто добавьте его, эта платформа - то, для чего оно было создано! - person Gabriel Andrés Brancolini; 12.03.2021

Убедитесь, что ваш auth db установлен правильно.

Я столкнулся с этой проблемой, когда упомянул только БД, к которой я хотел подключиться, и мой auth db был другим (кроме admin db).

db-name в этой строке считается БД аутентификации.

new MongoClient("mongodb://username:[email protected]:11111/db-name?connect=replicaSet")

Затем вы можете изменить выбранную БД Позже

mDb = mClient.GetDatabase(mongoDBName);
person vikky MCTS    schedule 18.06.2018

Такое же сообщение об ошибке, но не встречается при развертывании MongoLabs.

Я только что столкнулся с той же ошибкой, указанной в заголовке, с приложением Asp.Net Core. Моя проблема возникла из-за проблемы с конфигурацией IOC.

В моем контейнере IOC мой обернутый экземпляр MongoClient был настроен на временный образ жизни зависимости.

Для драйвера MongoDb C #:

Рекомендуется хранить экземпляр MongoClient в глобальном месте либо как статическую переменную, либо в контейнере IoC с временем жизни синглтона.

Я продвинул образ жизни моего объекта до синглтона, и это решило проблему.

Я использую:

  • .Net Core 2.0
  • Драйвер Mongo C # версии 2.5
  • Замок Виндзор для моего МОК версии 3.3.0

См. Раздел Клиент драйвера C #: http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use

person Brennan Mann    schedule 28.03.2018

Убедитесь, что имя пользователя базы данных также чувствительно к регистру. Я столкнулся с этой проблемой из-за чувствительности к регистру имени пользователя.

person Ramakrishna    schedule 22.01.2016

Это связано с ошибкой подключения MongoDB. Возможно, у вас нет разрешений или вы не указали разрешенные IP-адреса в MongoDB. Пожалуйста, проверьте, например, в MongoDB Compose, можете ли вы подключиться к своему атласу MongoDB. Если вы не можете подключиться, это означает, что у вас неправильная строка подключения MongoDB.

person naik899    schedule 19.04.2020

Я была такая же проблема. Мне удалось подключиться к MongoDB Atlas с помощью MongoDb Compass, но, используя ту же строку подключения в проекте C #, я получил ошибку Тайм-аут произошел после 30000 мсек при выборе сервера с помощью CompositeServerSelector ... --- ›System.Net.Internals.SocketExceptionFactory + ExtendedSocketException (61): в соединении отказано 192.168.1.254:53.

В моем случае проблема была вызвана маршрутизатором моего интернет-провайдера. Переключение подключения к точке доступа 4G моего iPhone решило проблему с подключением.

person Bruno M.    schedule 16.09.2020

Порт 10255 был заблокирован моим интернет-провайдером / правилами брандмауэра. Открытие этого порта на стороне клиента устранило проблему.

person ShivamShrey    schedule 29.04.2021
comment
Большие усилия... - person Ragesh S; 30.04.2021

У меня была эта проблема, и оказалось, что сервер базы данных отстает на 2 часа. Как только я установил его время, проблема с тайм-аутом была решена.

person Sohail Ahmed    schedule 23.01.2020