【问题标题】:WCF WF Service endpoint stops respondingWCF WF 服务端点停止响应
【发布时间】: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


【解决方案1】:

如果没有,请添加。除非您中止(或重新启动服务),否则异常将使通道出错 What is the best workaround for the WCF client `using` block issue?

catch (Exception e)
{
    ...
    client.Abort();
    throw;
}

【讨论】:

  • 这不在客户端...这是服务器端问题。
  • 对.....如果服务器端出现异常通道故障,那么您应该中止您的客户端代理
  • 我同意。但是,没有客户端代理。当对元数据进行简单的 HTTP GET 请求时会发生此故障,然后继续失败,直到整个服务关闭并重新启动。
  • 如果节流导致异常并终止服务,那么我将放弃 WCF 和 MS 技术并成为一名技工。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多