2

我想实现下一个工作流场景: 在此处输入图像描述
我有两个分支的工作流服务。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

4

2 回答 2

0

不要使用挑选。使用并行并将并行设置为仅在您确定对话已结束时终止。Parallel 有一个属性,您可以在其中设置终止条件。

于 2012-04-02T09:34:08.580 回答
0

根据我的经验,您无法重新初始化关联句柄。您需要为要关联的每个键创建一个单独的关联句柄。

于 2011-10-03T13:44:28.493 回答