【发布时间】:2014-02-26 14:46:02
【问题描述】:
我有一个 WorkflowServiceHost,我在 Windows 服务中启动。一切正常,但一段时间后服务停止响应请求。查看跟踪日志,我可以看到一个异常被抛出 - 在这种情况下,通过元数据页面的简单加载 - 关于正在中止的通信对象:
The communication object, System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel, cannot be used for communication because it has been Aborted.
跟踪文件中没有指示问题的先前日志。我们每分钟对其进行监控以确保它正在运行(因为会发生此问题),并且在它突然开始报告它处于中止状态之前,我可以在元数据页面上看到许多成功的请求。
此时恢复的唯一方法是重新启动我的服务。我以前曾多次使用过 WCF,但从未将其用作 WF 的前端。我的 WCF 服务以前从未遇到过这个问题,那么 WorkflowServiceHost 可能会发生什么问题吗?
谢谢!
更新:
以下是来自 WCF 的一些跟踪日志:
【问题讨论】:
-
可能是由防火墙或代理服务器引起的。
-
为什么它可以正常工作几个小时然后停止?
-
你有什么类型的InstanceContextMode?我有类似的问题,如果不是很长时间没有对服务器的请求,那么连接被中止。我把 Ping 从客户端到服务器再到维护连接。
-
奇怪的是,我们每分钟都有一个针对它的 ping 设置来监控它的状态,所以我不知道我会称之为“非活动”。
-
当抛出未处理的异常时,通道会出现故障,我的猜测是您有特定的工作流活动导致异常并且您没有正确重新创建代理。这甚至可能是服务超时,关键是发起请求需要新代理的任何内容。
标签: c# wcf workflow-foundation-4