Тайм-аут произошел после 30000ms выбора сервера с помощью CompositeServerSelector
Я пытаюсь развернуть свою базу данных Mongo в Mongolabs, все работает нормально, и я создаю новую базу данных. Пожалуйста, см. Мой параметр connectionString.
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);
}
но когда я пытаюсь подключить базу данных, она показывает ошибку, например:
5 ответов
я заменяю метод строки подключения, как показано ниже.
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name")
теперь это решено.
пожалуйста, смотрите ответ от пола Лемке.
добавить "?connect=replicaSet " до конца строки подключения при подключении к MongoLab.
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
этот билет JIRA имеет некоторые детали:https://jira.mongodb.org/browse/CSHARP-1160
по умолчанию используется подключение к члену набора реплик. Но настройки одного узла MongoLab на самом деле являются набором реплик одного узла, и это заставляет нас не доверять ему. Дописывание ?connect=replicaSet к вашей строке подключения заставит драйвер двигаться в режиме реплики set и все будет работать.
убедитесь, что имя пользователя базы данных также чувствительны к регистру. Я столкнулся с этой проблемой из-за чувствительности имени пользователя к регистру.
убедитесь, что ваш auth db установлен правильно.
я столкнулся с этой проблемой , когда я упомянул только БД, к которой я хотел подключиться, и моя БД auth была другой (кроме БД администратора ).
на db-name в этой строке рассматривается как auth DB .
new MongoClient("mongodb://username:password@ds011111.mongolab.com:11111/db-name?connect=replicaSet")
затем вы можете изменить выбранную БД позже
mDb = mClient.GetDatabase(mongoDBName);
такое же сообщение об ошибке, но не встречается с развертыванием MongoLabs.
Я только что столкнулся с той же ошибкой, указанной в заголовке с Asp.Net Core App. Моя проблема была связана с проблемой конфигурации 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