Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB和多个C#客户端线程_Mongodb_Mongodb .net Driver - Fatal编程技术网

MongoDB和多个C#客户端线程

MongoDB和多个C#客户端线程,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我有一个MongoDB的主实例要连接。我正在使用C#driver(最新版本)连接并使用MongoDB 我的客户端应用程序是多线程的,因此进程将以不同的间隔定期运行以生成报告。当多个线程在运行时,我调用驱动程序上的各种函数(例如server.DatabaseExists(…),我总是遇到异常 请求的名称有效,但找不到请求类型的数据 运行一个线程不会导致此问题。我知道MongoDB是线程安全的,因此我无法理解其原因和补救措施。我找到的唯一“解决方案”是回收承载我的网站\服务的应用程序池,调用mong

我有一个MongoDB的主实例要连接。我正在使用C#driver(最新版本)连接并使用MongoDB

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

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


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

我找到的唯一“解决方案”是回收承载我的网站\服务的应用程序池,调用mongo客户端。

所以我现在遇到了完全相同的问题,我通过使用ip而不是主机名排除了DNS,你有什么进展吗?@Stono。。使用IP解决了您的问题吗?错误发生在MongoDB驱动程序之外-它位于TCP/IP层-问题在于名称解决。这是Windows错误,不是MongoDB驱动程序或DB错误。如果你用谷歌搜索这个错误,会出现多次点击,所有这些都表明问题在于主机名/主机解析。顺便说一句,当你运行一个线程时,你会执行相同的操作吗?是DatabaseExists()方法,还是第二个线程连接上的所有调用都会导致此异常?我正在讨论旧问题。接受这个答案,因为这是唯一的答案。不幸的是,我不再使用MongoDB,我自己也从未解决过这个问题。
 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