Mongodb 在尝试写入Mongo副本集时,是什么导致超时?

Mongodb 在尝试写入Mongo副本集时,是什么导致超时?,mongodb,mongodb-.net-driver,mongo-shell,Mongodb,Mongodb .net Driver,Mongo Shell,我正在运行一个C#脚本来对分片集群执行写操作。 每当我尝试对数据库执行写操作时,都会出现一个错误,从 使用CompositeServerSelector选择服务器30000ms后发生超时 有人知道我需要做什么才能成功写作吗?此群集是一个3节点复制集,具有一个主副本和两个辅助副本 详情如下: 我正在使用Nuget包:Mongo.Db.Core、Mongodb.Core.Driver和Mongodb.Bson,所有这些包的版本号都是2.11.2。如果在控制台中运行db.version(),它将返回4

我正在运行一个C#脚本来对分片集群执行写操作。 每当我尝试对数据库执行写操作时,都会出现一个错误,从

使用CompositeServerSelector选择服务器30000ms后发生超时

有人知道我需要做什么才能成功写作吗?此群集是一个3节点复制集,具有一个主副本和两个辅助副本

详情如下: 我正在使用Nuget包:Mongo.Db.Core、Mongodb.Core.Driver和Mongodb.Bson,所有这些包的版本号都是2.11.2。如果在控制台中运行db.version(),它将返回4.2.9

我准备连接字符串,如图所示:

MongoUrlBuilder bldr = new MongoUrlBuilder();
List<MongoServerAddress> servers = new List<MongoServerAddress>();

servers.Add(new MongoServerAddress("the-domain0.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain1.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain2.azure.mongodb.net", 27017));

bldr.Username = "the_user";
bldr.Password = "the_password";
bldr.Servers = servers;
bldr.DatabaseName = "the_db_name";

bldr.ConnectionMode = ConnectionMode.ReplicaSet;

_mongoConnectionString = bldr.ToMongoUrl().ToString();
    var client = new MongoClient(_mongoConnectionString);
    IMongoDatabase database = client.GetDatabase("the_db_name");
    _the_collection_name = database.GetCollection<CollType>(_collname);
以下是错误的主要方面:

MongoUrlBuilder bldr = new MongoUrlBuilder();
List<MongoServerAddress> servers = new List<MongoServerAddress>();

servers.Add(new MongoServerAddress("the-domain0.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain1.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain2.azure.mongodb.net", 27017));

bldr.Username = "the_user";
bldr.Password = "the_password";
bldr.Servers = servers;
bldr.DatabaseName = "the_db_name";

bldr.ConnectionMode = ConnectionMode.ReplicaSet;

_mongoConnectionString = bldr.ToMongoUrl().ToString();
    var client = new MongoClient(_mongoConnectionString);
    IMongoDatabase database = client.GetDatabase("the_db_name");
    _the_collection_name = database.GetCollection<CollType>(_collname);
System.TimeoutException:“30000ms选择后发生超时 使用CompositeServerSelector{Selectors的服务器= MongoDB.Driver.MongoClient+是会话支持的服务器选择器, LatencyLimitingServerSelector{AllowedLatencyRange=00:00:00.0150000 } }. 群集状态的客户端视图为{ClusterId:“1”,ConnectionMode :“ReplicaSet”,类型:“ReplicaSet”,状态:“Disconnected”,服务器: [{ServerId:{ClusterId:1,端点: “未指定/the_domain.azure.mongodb.net:27017” }“,端点: “未指定/the_domain.azure.mongodb.net:27017”, 原因更改:“心跳”,状态:“已断开”,服务器版本:, 拓扑版本:,类型:“未知”,异常: “MongoDB.Driver.MongoConnectionException:运行时发生异常 正在打开与服务器的连接

这是完整的堆栈跟踪:

MongoUrlBuilder bldr = new MongoUrlBuilder();
List<MongoServerAddress> servers = new List<MongoServerAddress>();

servers.Add(new MongoServerAddress("the-domain0.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain1.azure.mongodb.net", 27017));

servers.Add(new MongoServerAddress("the-domain2.azure.mongodb.net", 27017));

bldr.Username = "the_user";
bldr.Password = "the_password";
bldr.Servers = servers;
bldr.DatabaseName = "the_db_name";

bldr.ConnectionMode = ConnectionMode.ReplicaSet;

_mongoConnectionString = bldr.ToMongoUrl().ToString();
    var client = new MongoClient(_mongoConnectionString);
    IMongoDatabase database = client.GetDatabase("the_db_name");
    _the_collection_name = database.GetCollection<CollType>(_collname);
System.TimeoutException:“30000ms选择后发生超时 使用CompositeServerSelector{Selectors的服务器= MongoDB.Driver.MongoClient+是会话支持的服务器选择器, LatencyLimitingServerSelector{AllowedLatencyRange=00:00:00.0150000 }}.群集状态的客户端视图是{ClusterId:“1”,ConnectionMode :“ReplicaSet”,类型:“ReplicaSet”,状态:“Disconnected”,服务器: [{ServerId:{ClusterId:1,端点: “未指定/the-domain0.azure.mongodb.net:27017” }“,端点: “未指定/the-domain0.azure.mongodb.net:27017”, 原因更改:“心跳”,状态:“已断开”,服务器版本:, 拓扑版本:,类型:“未知”,异常: “MongoDB.Driver.MongoConnectionException:运行时发生异常 正在打开与服务器的连接。--> MongoDB.Driver.MongoConnectionException:运行时发生异常 正在从服务器接收消息。--> System.IO.EndOfStreamException:试图读取超过 溪流,在 MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadByteAsync(流 流,字节[]缓冲区,Int32偏移量,Int32计数,TimeSpan超时, 取消令牌(取消令牌)位于 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(CancellationToken cancellationToken)---内部异常堆栈跟踪的结束----at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessageAsync(Int32 响应,IMessageEncoderSelector编码器选择器, MessageEncoderSettings MessageEncoderSettings,CancellationToken 取消令牌)在 MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol
1.ExecuteAsync(IConnection connection,CancellationToken CancellationToken)位于MongoDB.Driver.Core.Connections.IsMasterHelper.GetResultAsync(IConnection connection,CommandWireProtocol
1 isMasterProtocol,CancellationToken 取消令牌)在 MongoDB.Driver.Core.Connections.ConnectionInitializer.InitializeConnectionAsync(IConnection 连接,取消令牌(取消令牌)位于 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancellationToken)---内部异常堆栈跟踪的结束----at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken 取消令牌)在 MongoDB.Driver.Core.Servers.ServerMonitor.InitializeConnectionAsync(CancellationToken 取消令牌)在 MongoDB.Driver.Core.Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancellationToken)”,最后一个时间戳: “2020-09-11T18:25:25.7998117Z”,最新更新: “2020-09-11T18:25:25.7998118Z”},{ServerId:{ClusterId:1, 终点: “未指定/the-domain1.azure.mongodb.net:27017” }“,端点: “未指定/the-domain1.azure.mongodb.net:27017”, 原因更改:“心跳”,状态:“已断开”,服务器版本:, 拓扑版本:,类型:“未知”,异常: “MongoDB.Driver.MongoConnectionException:运行时发生异常 正在打开与服务器的连接。--> MongoDB.Driver.MongoConnectionException:运行时发生异常 正在从服务器接收消息。--> System.IO.EndOfStreamException:试图读取超过 溪流,在 MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadByteAsync(流 流,字节[]缓冲区,Int32偏移量,Int32计数,TimeSpan超时, 取消令牌(取消令牌)位于 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(CancellationToken cancellationToken)---内部异常堆栈跟踪的结束----at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessageAsync(Int32 响应,IMessageEncoderSelector编码器选择器, MessageEncoderSettings MessageEncoderSettings,CancellationToken 取消令牌)在 MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol
1.ExecuteAsync(IConnection connection,CancellationToken CancellationToken)位于MongoDB.Driver.Core.Connections.IsMasterHelper.GetResultAsync(IConnection connection,CommandWireProtocol
1 isMasterProtocol,CancellationToken 取消令牌)在 MongoDB.Driver.Core.Connections.ConnectionInitializer.InitializeConnectionAsync(IConnection 连接,取消令牌(取消令牌)位于 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken 取消令牌)--结束