我的silverlight客户端应用程序中的通知,我正在使用WCF pollingDuplex绑定。
服务器端的绑定详细信息......
PollingDuplexHttp Binding custPollBind = new PollingDuplexHttpBinding();
custPollBind.InactivityTimeout = TimeSpan.FromDays(12);
custPollBind.ReceiveTimeout = TimeSpan.FromDays(12);
custPollBind.ServerPollTimeout = TimeSpan.FromSeconds(25);
custPollBind.TransferMode = TransferMode.StreamedResponse;
custPollBind.MaxOutputDelay = new TimeSpan(0, 0, 7);
客户端的绑定详细信息:
PollingDuplexHttpBinding binding = new PollingDuplexHttpBinding()
{
ReceiveTimeout = TimeSpan.FromDays(12),
InactivityTimeout = TimeSpan.FromDays(12),
};
EndpointAddress address = new EndpointAddress(endPoint);
client = new StuDuplexServiceClient(binding, address);
我希望频道不应该进入故障统计。
为此,同样在每个学院,我都会发送一些虚拟通知数据,以保持所有连接的客户端或通道处于活动状态。
工作正常。但是经过很长时间通常4-5或5-6或一些时间2-3小时所有连接的通道都会出现故障。和客户端应用程序不再连接到WCF服务。
经过很长一段时间后,如果我刷新页面或重新连接客户端应用程序,它正在连接,但仅在10-12秒后,通道再次成为故障状态。你可以说,它连接的时间只有10-12秒。
如果我再次启动我的服务,那么它工作正常。一段时间后,同样的问题就出现了问题。
我的WCF服务作为Windows服务托管。
对于服务行为我正在使用它..
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
这会造成任何问题吗?我也通过删除它来检查。但没有运气。