我有一个要连接的MongoDB的主要实例。我正在使用C#驱动程序(最新版本)来连接和使用MongoDB。MongoDB和多个C#客户端线程
我的客户端应用程序是多线程的,因此进程将以不同的时间间隔定期运行以生成报告。当多个线程正在运行,并且我调用驱动程序上的各种函数(例如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是线程安全的,所以我不知道原因和补救措施。
所以我现在有这个完全相同的问题,我已经通过使用ip而不是主机名排除了DNS,您是否取得了进展? – Stono
@Stono ..使用IP解决了你的问题吗? – genericuser
错误发生在MongoDB驱动之外 - 它在TCP/IP层上 - 问题在于名称解析。这是Windows错误,而不是MongoDB驱动程序或数据库错误。如果你在谷歌这个错误,有多个点击,所有这些表明问题与主机名/主机解析。 –