WF4调用WCF服务。

3
我在尝试让一个工作流(WF4)调用一个长时间运行的WCF服务,并在WCF服务完成后恢复处理时遇到了问题。下面的图表大致概述了我要实现的内容。如果您可以为我指出演示此场景(或非常相似情况)的样例,那将不胜感激。需要注意的是,我看过很多 WF 到 WF 的例子,但并不真正有所帮助。

使用 WCF 工作流还是自定义活动扩展? - user1228
嗨,威尔,我们正在尝试从WFSH(工作流服务主机)中托管的工作流中调用常规WCF服务。 - user321271
1个回答

0

你考虑过相关性吗?在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容器活动能够路由响应消息。 - user321271
已更新我的答案,提供另一种可能性。看起来他们现在在WF4中提供了相关的请求-响应通信。 - tom redfern
嗨,休,你有写相关令牌到回调消息的例子吗?在WCF服务中,我只是使用OperationContext.Current.GetCallbackChannel<IMyServiceCallback>()。 - user321271
抱歉,我没有任何示例,因为我从未使用过它。但是听起来这不是WF4中自动发生的事情。您需要启用它。我已经更新了我的答案,并附上了一些链接。希望它们能对您有所帮助。 - tom redfern
1
PS 真喜欢你的图表 - 你用的是哪个软件包呀? - tom redfern
嗨,Hugh,我们使用Balsamiq创建了这个图表。顺便说一下,我们在MSDN论坛上提出了这个问题http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4805f1fd-9daf-460b-ae3c-fda6abe5c2b1 - user321271

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接