WCF 通道:10 分钟后服务器未响应

WCF Channel: Server not responding after 10 minutes

我创建了一个由客户端和服务器组成的架构,它们在本地主机的 WCF 通道上进行通信,一切正常,但如果两者之间没有 activity(来自客户端的请求)更多超过 10 分钟服务器不再响应。连接仍然存在,但只是服务器没有响应客户端请求,因此客户端必须断开连接并重新连接才能向服务器发送请求。也许我漏掉了一些参数。

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

这里的问题在receiveTimeout。服务主机使用此超时来确定何时丢弃空闲连接。如果在配置的时间跨度内没有收到消息,连接将关闭。默认为 10 分钟。

更新,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