我想实现下一个工作流场景:
我有两个分支的工作流服务。Operation2(接收活动)与从消息头初始化的 CorrelationHandle “handle2”相关联。
接下来是流程:
1) 有人调用 Operation1 并为 Operation2 初始化相关处理程序。所以情况是 Operation2 的相关值与 Operation1 的相关值不同,应该在执行 Operation1 时在运行时获取。
2)使用相关值客户端可以调用Operation2。
3) 如果关联不正确,Operation2 仍应执行,但使用自定义逻辑。
问题是当我调用第一个服务时出现异常:
CorrelationHandle 已与 BookmarkScope '{bookmark scope id x}' 一起使用,因此不能与 BookmarkScope '{bookmark scope id y}' 一起使用
调试表明,即使我调用 Operation1,也只有 Operation2 中的“handle2”也被初始化为 Receive2 活动中的某个值!!!所以我似乎无法重新初始化它。
有什么想法可以解决吗?
更新:
我已附上带有源代码的文件,因此您可以重现该问题。只需启动 Operation1。
http://dl.dropbox.com/u/27847776/WorkflowCorrelation.zip
预先感谢,
-Petro