尝试将数据发送到Azure上的mongoDB时出现SocketException

时间:2014-06-25 09:36:25

标签: mongodb sockets azure mongodb-.net-driver system.net.sockets

我有一个mongodb副本集,托管在Azure平台上的Windows Server 2012 R2的VM中,我的问题是当我尝试使用C#驱动程序从外部客户端插入数据或甚至从GUI查询它们时客户端(mongoVUE,robomongo ...)我经常得到以下异常,永久锁定程序(即使尝试Server.reconnect()也无法解决)。

No such host is known
Type: System.Net.Sockets.SocketException

Stack:    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)
   at MongoDB.Driver.MongoServerInstance.GetIPEndPoint()

我尝试过设置:

MongoDefaults.SocketTimeout = TimeSpan.FromMinutes(5);
MongoDefaults.ConnectTimeout = TimeSpan.FromMinutes(5);
MongoDefaults.MaxConnectionIdleTime = TimeSpan.FromMinutes(5);

将服务器的硬编码公共IP地址放在连接字符串中并从不同位置进行测试,但似乎服务器上的某些内容阻止了连接。

有谁知道如何解决它?

1 个答案:

答案 0 :(得分:0)

我解决了!问题是我用一个没有正确配置的副本集启动了mongodb,在启动mongod时正确地删除选项--replset。