MongoDB 和多个 C# 客户端线程

标签 mongodb mongodb-.net-driver

我有一个要连接的 MongoDB 主实例。我正在使用 C# 驱动程序(最新版本)来连接和使用 MongoDB。

我的客户端应用程序是多线程的,因此进程将以不同的时间间隔定期运行以生成报告。当多个线程在运行时,我在驱动程序上调用各种函数(例如 server.DatabaseExists(...)),我总是遇到异常。

"请求的名称有效,但未找到请求类型的数据"

 at System.Net.Dns.GetAddrInfo(String name)
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
   at MongoDB.Driver.MongoServerAddress.ToIPEndPoint(AddressFamily addressFamily) in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoServerAddress.cs:line 195
   at MongoDB.Driver.MongoServerInstance.GetIPEndPoint() in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoServerInstance.cs:line 339
   at MongoDB.Driver.Internal.MongoConnection.Open() in C:\work\rstam\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line 368
   at MongoDB.Driver.Internal.MongoConnection.GetNetworkStream() in C:\work\rstam\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line 574
   at MongoDB.Driver.Internal.MongoConnection.SendMessage(MongoRequestMessage message, SafeMode safeMode, String databaseName) in C:\work\rstam\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line 555
   at MongoDB.Driver.MongoCursorEnumerator`1.GetReply(MongoConnection connection, MongoRequestMessage message) in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 295
   at MongoDB.Driver.MongoCursorEnumerator`1.GetFirst() in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 253
   at MongoDB.Driver.MongoCursorEnumerator`1.MoveNext() in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 141
   at MongoDB.Driver.MongoDatabase.GetCollectionNames() in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoDatabase.cs:line 645
   at MongoDB.Driver.MongoDatabase.CollectionExists(String collectionName) in C:\work\rstam\mongo-csharp-driver\Driver\Core\MongoDatabase.cs:line 297

运行一个线程不会导致此问题。我知道MongoDB是线程安全的,所以我不知道原因和补救措施。

最佳答案

我发现的唯一“解决方案”是回收托管我的网站\服务调用 mongo 客户端的应用程序池。

关于MongoDB 和多个 C# 客户端线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150495/

相关文章:

javascript - 我在 "TypeError: Cannot read property ' _id' of undefined 上绞尽脑汁好几天了”

c# - 如何将 bsondocuments 列表添加为 bsondocument 的元素

mongodb - 如何在 MongoDB 中调试存储的 javascript 函数?

angularjs - 如何同时res.json和res.render,传mongo db给angularjs?

java - Spring mongo 上的聚合

mongodb - MongoDB 支持的最大数据库数

mongodb - Mongo C# 驱动程序对象分配

c# - 2.0 驱动程序中的 MongoServer.State 等效项

c# - 失去连接后MongoDB从当前位置继续

java - 如何使用Java从mongodb获取最后插入的N条记录?