我有一个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分钟.我想知道如果不是保持会话开放,就可以为每次通话重新建立一个新的会话.
可靠的消息传递将满足您的需求.如果出现问题,频道会重新建立.WSDualHTTPBinding为http绑定提供了这个,并且还有一个允许这个的tcp绑定.如果您在同一台计算机上,则命名管道绑定将默认提供此功能.