我有一个 Windows 服务,可以将雷达枪的速度读数记录到数据库中。此外,我将该服务设为 WCF 服务器。我有一个订阅服务的表单和一个 CF 客户端,只要有满足特定标准的读数就会被回调。
这原则上有效,但一段时间后通道超时。长时间运行的连接似乎存在一些基本问题(请参阅 http://blogs.msdn.com/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx)和双工 HTTP 回调可能不是正确的解决方案。还有其他方法可以使用 WCF 实现发布/订阅模式吗?
编辑:即使有 2 小时的超时,频道最终也会受到影响。我收到此错误:
无法完成“SignalSpeedData”操作,因为会话通道等待接收消息时超时。要增加超时,请在配置文件中的绑定上设置 receiveTimeout 属性,或直接在 Binding 上设置 ReceiveTimeout 属性。
这发生在最后一次成功通话后 15 分钟。我想知道是否可以为每次通话重新建立一个新的会话,而不是保持会话打开。