我在尝试让一个工作流(WF4)调用一个长时间运行的WCF服务,并在WCF服务完成后恢复处理时遇到了问题。下面的图表大致概述了我要实现的内容。如果您可以为我指出演示此场景(或非常相似情况)的样例,那将不胜感激。需要注意的是,我看过很多 WF 到 WF 的例子,但并不真正有所帮助。
你考虑过相关性吗?在WF4中是否已经为您处理了这个问题?在WF3中,这不是开箱即用的功能。这意味着,如果您从长时间运行的服务中发送请求,WF3将不知道将响应消息路由到哪个工作流实例。
没有相关性,来自WCF的回调将无法路由到“等待”的工作流实例。
更新
您是否将相关令牌写入回调消息中?
更新
很抱歉我没有示例,因为我不是WF4用户。我必须在WF3中实现相关性,因为它没有提供此功能。为此,我创建了一个查找服务,将相关值映射到工作流实例GUID,并且入站调用可以通过wsHttpContextBinding针对特定实例进行定位。
但是,在WF4中,您可以在每个基于发送和接收的活动上初始化和跟踪相关性。您可以在此处阅读有关此内容的更多信息:
http://msdn.microsoft.com/en-us/library/ee358755(VS.100).aspx