DNS IPv6 地址正确但 IPv4 地址不正确的端点通信异常

EndPoint Communication Exception with correct DNS IPv6 address but incorrect IPv4 address

我遇到了一个间歇性问题,它抛出以下异常。

http://myserver.com/something 上没有端点侦听可以接受消息。 System.Net.WebException: 无法解析远程名称

经过多方检查得知客户端配置的DNS服务器ipv6地址正确,ipv4地址错误。当 ipv4 地址更改为正确的 ipv4 地址时,问题就解决了。

我的问题是间歇性失败的原因可能是什么。 为什么它不会总是失败,或者如果它使用了正确的 ipv6 地址为什么它不会总是通过?

一个行为良好的客户端会在它放弃之前尝试每个单独的 DNS 递归并给你 The remote name could not be resolved 错误。

因此,在您为客户端配置了错误的 IPv4 地址和正确的 IPv6 地址的情况下,它永远不会通过 IPv4 获得回复,但只要它通过 IPv6 获得回复,它就会不应该给你那个错误。

但是,如果客户端和递归器之间的 IPv6 连接不稳定,可能会导致间歇性故障。

一旦您更正了递归器的 IPv4 地址,您只会在两者都不起作用的情况下收到错误消息。这意味着错误发生的可能性降低了(甚至可能比仅使用 IPv4 地址时发生错误的可能性更小)。

因此,即使 IPv6 连接确实仍然不稳定,您也可能没有注意到,因为在那些 IPv6 不起作用的情况下,客户端确实通过 IPv4 获得了响应。