【问题标题】:SocketException when trying to send data to mongoDB on Azure尝试将数据发送到 Azure 上的 mongoDB 时出现 SocketException
【发布时间】:2014-06-25 09:36:24
【问题描述】:

我有一个托管在 Azure 平台上的带有 Windows Server 2012 R2 的 VM 中的 mongodb 副本集,我的问题是,当我尝试使用 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 地址放入连接字符串并从不同位置对其进行测试,但似乎服务器上的某些东西阻止了连接。

有人知道我该如何解决吗?

【问题讨论】:

  • 看看网络。我想你会发现当 Azure 实例没有被持续访问时,它们会被引用到“睡眠/停车/其他”。甚至会有解决方案。谷歌是你的朋友。顺便说一句,这不是产品代言 :)

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2021-02-08
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多