Я пытаюсь подключиться к базе данных MongoDb.
- Мой клиент: ASP.NET Core 2 с MongoDb.Driver 2.6.1
- Мой сервер: MongoDb 3.6.5Community Edition, автономно (без реплики), 64-разрядная версия в Windows Server 2016.
Аутентификация по строке подключения - , работа:
public MongoDbContext(AppSettings appSettings)
{
var connectionString = "mongodb://myUsername:myPassword@myDomain.com:27017/myDatabaseName";
_client = new MongoClient(connectionString);
// ...
}
Аутентификация с помощью MongoClientSettings НЕ работает:
public MongoDbContext(AppSettings appSettings)
{
var credentials = MongoCredential.CreateMongoCRCredential(databaseName: "myDatabaseName", username: "myUsername", password: "myPassword");
var server = new MongoServerAddress(host: "myDomain.com", port: 27017);
var mongoClientSettings = new MongoClientSettings
{
Credential = credentials,
Server = server,
ConnectionMode = ConnectionMode.Standalone,
ServerSelectionTimeout = TimeSpan.FromSeconds(3)
};
_client = new MongoClient(mongoClientSettings);
// ...
}
TimeoutException: истекло время ожидания после 3000 мс при выборе сервера с помощью CompositeServerSelector {Selectors = MongoDB.Driver.MongoClient + AreSessionsSupporServerSversitorSvertingSverSenseSversitorSvertingServerServerServerServerSenseAllowedLatencyRange = 00: 00: 00.0150000}}.Клиентское представление состояния кластера: {ClusterId: "1", ConnectionMode: "Автономный", Тип: "Автономный", Состояние: "Отключен", Серверы: [{ServerId: "{ClusterId: 1, EndPoint:" Unspecified / myDomain.com: 27017 "}", конечная точка: "Unspecified / myDomain.com: 27017", состояние: "Disconnected", тип: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: возникла исключительная ситуация при открытии соединения с сервером. ---> MongoDB.Driver.MongoAuthenticationException: невозможно аутентифицировать имя пользователя «myUsername» в базе данных «myDatabaseName». ---> MongoDB.Driver.MongoCommandException: сбой аутентификации команды: ошибка аутентификации.
Я использовал одни и те же значения для обоих подходов (в верхнем и нижнем регистре). Но только подход MongoClientSetting
вызывает исключение. Однако по другим причинам я предпочел бы использовать подход MongoClientSetting
, а не строку подключения.основанный на подходе.
Я что-то упустил или это ошибка в драйвере MongoDb для C #?
Чтобы избежать недоразумений: в приведенных выше примерах я обменял все действительные значения (имя пользователя, пароль и т. Д.) На поддельные значения.
Спасибо за любую помощь!