目前,我在 .net WCF 客户端遇到了奇怪的行为。 响应请求超时而触发一些重试逻辑。为了测试它,我们向 iptables 添加了以下规则
sudo iptables -I OUTPUT -d <client ip> -m string --string "<name of response>" --algo bm -j DROP
。该工作流程运行良好,客户端的超时逻辑工作正常。但不久前,奇怪的事情开始发生。超时异常发生的时间早于绑定中配置的时间。假设绑定中的接收和发送超时均为 5 分钟,但在日志中,方法调用后 5 秒后会引发超时异常。此外,这些过早超时并不一致,它们在几次测试运行中发生一次。
什么会导致 WCF 客户端出现此行为?
暂时禁用重试逻辑,以查看在没有它的情况下超时是否按预期运行。这将有助于隔离重试机制是否有故障。