【发布时间】:2013-06-07 21:08:35
【问题描述】:
我在 Mono 上的 Dns 类(从 C# 调用)遇到了一个高度可重现的问题:如果我从多台机器(例如,在集群上)进行多次调用,或多或少同时调用(例如批处理程序时)启动),一些随机数量的呼叫挂起。
Mono Dns 类似乎很可能没有正确超时并重新发出请求:DNS 使用基于 UDP 的 RPC 协议,并且由于 UDP 不可靠,如果十个数据包同时到达 DNS 服务器或一物一物丢失,不会有任何回复。
这是我的问题:有谁知道在 Mono 上从 C# 中断对 Dns.GetHostName 或 Dns.GetHostInfo 的调用的干净方法,以便在发生这种情况时,我可以强制重新发出请求?
【问题讨论】: