gpt4 book ai didi

.net - WCF - Binding.ReceiveTimeout & ReliableSession.InactivityTimeout

转载 作者:行者123 更新时间:2023-12-01 04:49:25 27 4
gpt4 key购买 nike

我正在尝试制作一个使用客户端回调的 WCF 服务。只要有连接(互联网、网络)并且客户端或 channel 没有明确关闭 channel ,我就希望 channel 保持打开状态。

为了保持 channel 打开(即使没有事件),我找到了 WCF 支持的可靠 session 。我看到通过使用可靠 session ,有两个计时器需要考虑:Binding.ReceiveTimeoutReliableSession.InactivityTimeout .

在互联网上搜索后,我仍然无法确切了解这两者是如何协同工作的。我知道如果两次超时,连接将进入故障状态。

我的第一个问题:启用可靠 session 时究竟会发生什么?

我的第二个问题:Here ,为什么msdn会这样说?

Since the connection is dropped if either inactivity timer fires, increasing InactivityTimeout once it is greater than ReceiveTimeout has no effect. The default for both of these timeouts is 10 minutes, so you always have to increase both of them to make a difference when using a reliable session.

最佳答案

要获得第一个问题的答案,请查看此问题的不错答案:

What is the purpose of WCF reliable session?

对我来说,msdn 站点上的解释很清楚:
当达到 ReceiveTimeout 中指定的时间(例如 10 分钟)时,它将结束连接,即使可靠 session 已发送保持事件状态(例如每 1 分钟)。

每分钟发送的保持事件状态将确保永远不会达到 inactivityTimout(例如 5 分钟)——因此 channel 将无休止地保持打开状态——但在 ReceiveTimeout 中指定的时间之后, session / channel 仍将关闭。

因此,据我了解,ReceiveTimeout 应始终高于或与 inactivityTimeout 相同。

关于.net - WCF - Binding.ReceiveTimeout & ReliableSession.InactivityTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12872017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com