【问题标题】:WF4 calling WCF ServiceWF4 调用 WCF 服务
【发布时间】:2012-02-06 19:54:51
【问题描述】:

我在尝试让工作流 (WF4) 调用长时间运行的 WCF 服务并在 WCF 服务完成时恢复处理时遇到问题。下图粗略地概述了我想要实现的目标。如果您能指出任何演示这种情况(或非常相似的情况)的示例,我们将不胜感激。有关信息,我已经看到很多 WF 到 WF 的示例,但并没有真正的帮助。

【问题讨论】:

  • 使用 WCF 工作流或自定义活动扩展?
  • 您好,我们正在尝试从托管在 WFSH(工作流服务主机)中的工作流调用常规 WCF 服务。

标签: wcf workflow-foundation-4 msmq duplex msmq-wcf


【解决方案1】:

您是否考虑过相关性?这是 WF4 为您处理的吗?在 WF3 中,这不是开箱即用的。这意味着如果您从长期运行的服务中发送请求,WF3 将不知道将响应消息路由到工作流的哪个实例。

如果没有关联,来自 WCF 的回调将不会被路由到“等待”工作流实例。

更新

您是否将关联令牌写入回调消息?

更新

抱歉,我不是 WF4 用户,因此没有示例。我不得不在 WF3 中实现相关性,因为它不提供该功能。为此,我创建了一个查找服务,它将相关值映射到工作流实例 guid,然后入站调用可以通过 wsHttpContextBinding 定位特定实例。

但是 WF4 使您能够初始化并跟踪每个基于发送和接收的活动的相关性。你可以在这里阅读:

http://blogs.msdn.com/b/endpoint/archive/2010/01/04/what-s-a-correlation-and-why-do-i-want-to-initialize-it.aspx

http://msdn.microsoft.com/en-us/library/ee358755(VS.100).aspx

【讨论】:

  • 您好 Hugh,我们正在尝试在 CorrelationScope 容器中使用 Send + ReceiveReplyForSend 消息传递活动。我们希望 CorrelationScope 容器活动将路由响应消息。
  • 用另一种可能性更新了我的答案。他们现在似乎在 WF4 中提供相关的请求-响应通信。
  • 嗨 Hugh,你有任何将关联令牌写入回调消息的示例吗?在 WCF 服务中,我只是使用 OperationContext.Current.GetCallbackChannel()
  • 对不起,我没有任何示例,因为我从未使用过它。但听起来这不仅仅是在 WF4 中“发生”的事情。您需要启用它。我已经用一些链接更新了我的答案。希望他们能帮到你。
  • PS 喜欢你的图表——你用什么包做的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 2011-05-04
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多