0

我有一个mongodb副本集在Azure平台上的Windows Server 2012 R2中承载,我的问题是,当我尝试从外部客户端使用数据C#驱动程序甚至是从GUI客户端(mongoVUE,robomongo ...)咨询他们。我经常会遇到下面的例外情况,它会永久性地锁定程序(即使尝试使用Server.reconnect()也无法解决)。尝试将数据发送到Azure上的mongoDB时出现SocketException

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地址,并从不同位置测试,但它似乎在服务器上的东西挡住连接。

有没有人有任何想法我可以修复它?

+0

环顾网络。我想你会发现当Azure实例没有被连续访问时,它们会“睡觉/停放/不管”。甚至会有解决方案。 Google是你的朋友。这不是产品代言BTW :) –

回答

0

我解决了!问题在于我启动了mongodb,但没有正确配置一个副本集,在启动mongod时,删除了选项--replset所有工作正常。

相关问题