it-swarm.com.ru

Тайм-аут произошел после 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);

    }

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

enter image description here

9
Ragesh S

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

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

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

Пожалуйста, смотрите ответ от Пола Лемке.

13
Ragesh S

Добавьте «? Connect = replicaSet» в конец строки подключения при подключении к MongoLab. 

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

Этот билет JIRA содержит некоторые детали: https://jira.mongodb.org/browse/CSHARP-1160

По умолчанию по умолчанию используется подключение к члену набора реплик. Но настройки MongoLab Single-Node на самом деле являются набором реплик одного узла, и это заставляет нас не доверять ему. Добавление? Connect = replicaSet к вашей строке подключения заставит драйвер перейти в режим установки реплики, и все будет работать.

Нашел эту информацию здесь.

11
Paul Lemke

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

1
Ramakrishna

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

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

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

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

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

mDb = mClient.GetDatabase(mongoDBName);
1
vikky MCTS

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

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

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

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

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

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

Я использую: 

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

Пожалуйста, обратитесь к клиентскому разделу драйвера C #: http://mongodb.github.io/mongo-csharp-driver/2.5/reference/driver/connecting/#re-use

0
Brennan Mann