我创建了一个由客户端和服务器组成的体系结构,这些体系结构在localhost中的WCF通道上进行通信,一切正常,但如果两个服务器之间没有活动(来自客户端的请求)超过10分钟,则服务器不会#39; t响应了。连接仍然存在但是服务器没有响应客户端请求,因此客户端必须断开连接并重新连接才能向服务器发送请求。也许我让一些参数滑落。
我使用的地址是:net.tcp:// localhost:8080 / ICS; 频道类型:双工;
答案 0 :(得分:1)
问题出在receiveTimeout
。服务主机使用此超时来确定何时删除空闲连接。如果在配置的时间跨度内未收到任何消息,则表示连接已关闭。默认情况下是10分钟。
答案 1 :(得分:0)
更新,ReliableMessaging
未启用,因此编辑InactivityTimeout
毫无意义
而更改绑定设置的ReceiveTimeout
参数可以解决问题。
我的代码:
var bind = new NetTcpBinding(); // my binding instance
var relSessionEnabled = bind.ReliableSession.Enabled; // this is false
var inactivityTimeout = bind.ReliableSession.InactivityTimeout; // this is 10 minutes
bind.ReceiveTimeout = TimeSpan.MaxValue; // this was 10 minutes before this instructuion