WCF可靠会话的目的是什么?

And*_*doi 31 wcf nettcpbinding

围绕此主题的文档很差.我使用WCF服务与Windows服务中托管的NetTcpBinding.问题是会话在处于非活动状态一段时间后被删除.我需要的是永远活着的会话.WCF可靠的会话有什么帮助吗?或者我可以玩超时设置?

mar*_*c_s 43

不,可靠的会话也会像任何其他会话一样超时.主要的问题是:为什么你希望你的会话"无穷无尽"?如果你真的需要这个,你需要加快会话的超时.

可靠会话的重点是呼叫者将知道丢失的任何消息.与流行的看法相反,可靠的会话不能保证消息的传递 - 但是如果无法传递消息,至少呼叫者将知道它.

查看其中一些资源以获取更多背景信息:

  • 我有一个为什么。有时通信是从服务发起的!如果连接断开,这对某些目的没有好处,因为 a) 我们不知道我们的服务是否还活着 b) 我们无法访问任何专门为我们准备的广播或消息。但同意,这看起来像是在加速超时。 (2认同)

avr*_*ool 7

如果你不使用频道,它会在一段时间后关闭.您可以从绑定更改默认超时(10分钟).

NetTcpBinding binding = new NetTcpBinding();
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;
Run Code Online (Sandbox Code Playgroud)

MSDN上阅读更多内容