背景
客户端与服务端使用WCF建立连接后:1、可能长时间不对话(调用服务操作);2、客户端的网络不稳定。
为服务端与客户端两边都写“心跳检测”代码?不愿意。
解决
- 设置inactivityTimeout属性:设置KeepAlive值,以保持数据层连接
<reliableSession enabled="true" inactivityTimeout="00:00:30"/>
- 设置ReceiveTimeout 属性:服务端允许客户端登录后不做任何应用层服务的调用也可以一直挂着而不回收连接
ReceiveTimeout = TimeSpan.MaxValue
参考
做socket保持长连接的一些心得及回复意见
How to set keep alive interval for HTTP connection in WCF