WCF频道:服务器在10分钟后没有响应

时间:2016-12-20 08:11:37

标签: c# wcf wcf-data-services wcf-binding wcf-security

我创建了一个由客户端和服务器组成的体系结构,这些体系结构在localhost中的WCF通道上进行通信,一切正常,但如果两个服务器之间没有活动(来自客户端的请求)超过10分钟,则服务器不会#39; t响应了。连接仍然存在但是服务器没有响应客户端请求,因此客户端必须断开连接并重新连接才能向服务器发送请求。也许我让一些参数滑落。

我使用的地址是:net.tcp:// localhost:8080 / ICS; 频道类型:双工;

2 个答案:

答案 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