我正在尝试制作一个使用回调客户端的 WCF 服务。只要有连接(互联网,网络)并且客户端或通道没有明确关闭通道,我希望通道保持打开状态。
为了保持通道打开(即使没有活动),我找到了 WCF 支持的可靠会话。我看到通过使用可靠会话,需要考虑两个计时器:theBinding.ReceiveTimeout
和ReliableSession.InactivityTimeout
.
在互联网上搜索后,我仍然无法确切了解这两者是如何协同工作的。我知道如果两者中的任何一个超时,连接就会进入故障状态。
我的第一个问题:启用可靠会话时究竟会发生什么?
我的第二个问题:这里,为什么msdn会这样说?
由于如果任一非活动计时器触发,连接就会断开,因此一旦 InactivityTimeout 大于 ReceiveTimeout 就增加它没有任何效果。这两个超时的默认值都是 10 分钟,因此在使用可靠会话时,您始终必须同时增加这两个超时。