Я пытаюсь подключиться к кластеру mongodb-atlas на сервере C #, работающем в Mono на сервере FreeBSD.Я использую драйвер mongodb C #.
Я пытаюсь подключиться к кластеру, используя следующий URL-адрес подключения.
var connectionUrl = $"mongodb://{dbUsername}:{dbPassword}@staging-shard-00-00-iksnu.mongodb.net:27017,staging-shard-00-01-iksnu.mongodb.net:27017,staging-shard-00-02-iksnu.mongodb.net:27017/{dbName}?ssl=true&replicaSet=Staging-shard-0&authSource=admin&retryWrites=true";
var client = new MongoClient(connectionUrl);
, и у меня возникает эта ошибка:
System.TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }.
Client view of cluster state is {
ClusterId : "1",
ConnectionMode : "ReplicaSet",
Type : "ReplicaSet",
State : "Disconnected",
Servers : [
{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/staging-shard-00-00-iksnu.mongodb.net:27017" }", EndPoint: "Unspecified/staging-shard-00-00-iksnu.mongodb.net:27017", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.TypeLoadException: Could not resolve type with token 01000056 (from typeref, class/assembly MongoDB.Bson.Serialization.Serializers.ElementAppendingSerializer`1, MongoDB.Bson, Version=2.7.3.0, Culture=neutral, PublicKeyToken=null)
Я относительно уверен, что:
Это не фактическая строка соединения - строка работает локально (как в длинной, так и в короткой форме)
Это не отклоняется на основе IP - я могу подключиться к кластеру при использовании оболочки монго
Информация о версии
- Mono Версия: 5.10.1.57
- Версия Freebsd: 11.2-RELEASE-p4
- Mongodb C # Драйвер: 2.7.3
Есть ликакой-нибудь очевидный способ решить это, что я скучаю?Кажется, это как-то связано с этим потоком переполнения стека , однако это не решено.