【发布时间】:2011-08-31 16:05:00
【问题描述】:
我有一个托管在 Windows 服务中的 WCF 服务,该服务将错误发布到任何订阅的监视器应用程序。有 2 个服务器应用程序将错误发布到服务,然后将这些错误发送到任何订阅的监视器应用程序。这是使用 WSDualHttpBinding 完成的。
这可行,但在一段时间不活动后,它会停止工作并显示一个错误,指出可靠会话出现故障。我已经阅读了几篇关于这个问题的文章,但它并没有帮助找到它。我已经进行了所有必要的异常处理,但这没有帮助。
系统不是发布我的代码,而是基于 MSDN 中的基于列表的发布订阅示例,只是添加了错误检查和异常处理。链接如下。
http://msdn.microsoft.com/en-us/library/ms752254.aspx
有人知道是什么原因造成的吗?
【问题讨论】:
-
InnerException 中没有关于可能导致问题的原因吗?
-
这似乎是inactivitytimeout设置造成的?我的连接是持久性的,为什么还要有不活动超时?在理想情况下,我们的服务器不会导致错误,因此错误服务不会向监控应用程序报告任何内容。我仍然希望连接打开以防万一。可以完全禁用不活动超时吗?如果没有,有没有办法检测到连接已关闭以便重新打开?
-
所以这似乎是这里提到的一个错误smartasses.be/2009/01/26/wcf-reliable-session-and-keep-alives 解决方案是在给定的时间间隔“ping”监视器应用程序。对我来说似乎真的很傻,但你去吧。可靠会话的一部分肯定是确保连接在需要的时间内保持活动状态?
标签: c# .net wcf wsdualhttpbinding