c# - 使用 mongodb.driver 2.10.3 连接到 mongodb 服务器时出错
问题描述
我尝试为我的集群使用 mongodb 连接方法,但出现超时错误。集群有 3 个分片(00、01、02),根据我的 mongo 仪表板,它们都很健康。我还可以看到在主分片上注册了读取操作。无论我运行什么查询,我都会得到相同的超时异常。
var client = new MongoClient("mongodb+srv://bugbeeb:*******@csharptest-yzm6y.mongodb.net/test?retryWrites=true&w=majority");
var database = client.GetDatabase("test");
database.ListCollectionNames().ToList();
未处理的异常。System.TimeoutException:使用 CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } } 选择服务器 30000 毫秒后发生超时。集群状态的客户端视图是 { ClusterId : "1", ConnectionMode : "ReplicaSet", Type : "ReplicaSet", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/csharptest- shard-00-00-yzm6y.mongodb.net:27017" }",端点:“未指定/csharptest-shard-00-00-yzm6y.mongodb.net:27017”,状态:“断开连接”,类型:“未知” , HeartbeatException: "MongoDB.Driver.MongoConnectionException: 打开与服务器的连接时发生异常。---> MongoDB.Driver.MongoConnectionException:从服务器接收消息时发生异常。---> System.IO.EndOfStreamException:试图读取流的末尾。在 MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadBytesAsync(Stream stream, Byte[] buffer, Int32 offset, Int32 count, TimeSpan timeout, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() ---内部异常堆栈跟踪结束 --- 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(Int32 responseTo, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections 的 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() .BinaryConnection.ReceiveMessageAsync(Int32 responseTo, IMessageEncoderSelector encoderSelector,
1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) at MongoDB.Driver.Core.Connections.IsMasterHelper.GetResultAsync(IConnection connection, CommandWireProtocol
1 isMasterProtocol, CancellationToken cancelToken) at MongoDB.Driver.Core.Connections.ConnectionInitializer.InitializeConnectionAsync(IConnection connection, CancellationToken cancelToken)
在 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) --- 内部异常堆栈跟踪的结束 --- 在 MongoDB.Driver.Core 的 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) .Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancelToken)", LastUpdateTimestamp: "2020-05-05T01:54:47.5568045Z" }, { ServerId: "{ ClusterId: 1, EndPoint: "Unspecified/csharptest-shard-00-01- yzm6y.mongodb.net:27017" }",端点:“未指定/csharptest-shard-00-01-yzm6y.mongodb.net:27017”,状态:“断开连接”,类型:“未知”,HeartbeatException:“MongoDB. Driver.MongoConnectionException:打开与服务器的连接时发生异常。---> MongoDB.Driver.MongoConnectionException:从服务器接收消息时发生异常。---> System.IO.EndOfStreamException:试图读取流的末尾。在 MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadBytesAsync(Stream stream, Byte[] buffer, Int32 offset, Int32 count, TimeSpan timeout, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() ---内部异常堆栈跟踪结束 --- 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(Int32 responseTo, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections 的 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() .BinaryConnection.ReceiveMessageAsync(Int32 responseTo, IMessageEncoderSelector encoderSelector,1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) at MongoDB.Driver.Core.Connections.IsMasterHelper.GetResultAsync(IConnection connection, CommandWireProtocol
1 isMasterProtocol, CancellationToken cancelToken) at MongoDB.Driver.Core.Connections.ConnectionInitializer.InitializeConnectionAsync(IConnection connection, CancellationToken cancelToken)
在 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) --- 内部异常堆栈跟踪结束 --- 在 MongoDB.Driver.Core 的 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) .Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancelToken)", LastUpdateTimestamp: "2020-05-05T01:54:47.5411460Z" }, { ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/csharptest-shard-00-02- yzm6y.mongodb.net:27017" }",端点:“未指定/csharptest-shard-00-02-yzm6y.mongodb.net:27017”,状态:“断开连接”,类型:“未知”,HeartbeatException:“MongoDB。 Driver.MongoConnectionException:打开与服务器的连接时发生异常。---> MongoDB.Driver.MongoConnectionException:从服务器接收消息时发生异常。---> System.IO.EndOfStreamException:试图读取流的末尾。在 MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadBytesAsync(Stream stream, Byte[] buffer, Int32 offset, Int32 count, TimeSpan timeout, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() ---内部异常堆栈跟踪结束 --- 在 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(Int32 responseTo, CancellationToken cancelToken) 在 MongoDB.Driver.Core.Connections 的 MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync() .BinaryConnection.ReceiveMessageAsync(Int32 responseTo, IMessageEncoderSelector encoderSelector,1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) at MongoDB.Driver.Core.Connections.IsMasterHelper.GetResultAsync(IConnection connection, CommandWireProtocol
1 isMasterProtocol, CancellationToken cancelToken) at MongoDB.Driver.Core.Connections.ConnectionInitializer.InitializeConnectionAsync(IConnection connection, CancellationToken cancelToken)
在 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) --- 内部异常堆栈跟踪的结束 --- 在 MongoDB.Driver.Core 的 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) .Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancelToken)", LastUpdateTimestamp: "2020-05-05T01:54:47.5159634Z" }] }. at MongoDB.Driver.Core.Clusters.Cluster.ThrowTimeoutException(IServerSelector selector, ClusterDescription description) at MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChangedHelper.HandleCompletedTask(Task completedTask) 在 MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChanged(IServerSelector 选择器, ClusterDescription 描述, Task descriptionChangedTask,TimeSpan 超时,CancellationToken cancelToken) 在 MongoDB.Driver.Core.Clusters.Cluster.SelectServer(IServerSelector 选择器,CancellationToken cancelToken) 在 MongoDB.Driver.MongoClient.AreSessionsSupportedAfterServerSelection(CancellationToken cancelToken) 在 MongoDB.Driver.MongoClient.AreSessionsSupported(CancellationToken cancelToken) 在MongoDB.Driver.MongoClient.StartImplicitSession(CancellationToken cancelToken) 在 MongoDB.Driver.OperationExecutor.StartImplicitSession(CancellationToken cancelToken) 在 MongoDB.Driver.MongoDatabaseImpl.UsingImplicitSession[TResult](Func`2 func, CancellationToken cancelToken) 在 MongoDB.Driver.MongoDatabaseImpl。 MongoTest.Program 中的 ListCollectionNames(ListCollectionNamesOptions options, CancellationToken cancelToken)。C:\Users\bugbe\Documents\VSCode\Ch01\hello\Program.cs 中的 Main(String[] args):第 17 行
解决方案
推荐阅读
- excel - VBA 代码仅在使用断点时完全有效
- ruby-on-rails - 没有在 Rails 中捕获独角兽超时异常
- javascript - 将 lambda 函数动态应用于列
- arrays - 在循环中快速返回多个数组项
- python-3.x - 当输入 0 时函数给出 True 输出,我不知道为什么。蟒蛇 3
- pdf - 使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘
- c++ - filesystem::copy 函数速度的秘诀是什么?
- javascript - 限制图片上传数量 JavaScript
- java - gradle generate jar 有资源文件但运行 jar 导致 Invalid resource
- reactjs - 有没有可能使用从 Dropzone 上传的 ColorThief 来检测颜色?