1

我有一个工作流服务,它运行并执行许多不同的操作(例如 Web 服务调用)。

如果其中一项操作失败,我将调用错误报告 Web 服务来通知单独的系统我的工作流操作之一失败。由于错误可能类似于 Web 服务已关闭,因此我循环并重试此操作,直到它工作为止。

虽然有时我传递给此 Web 服务的数据有问题并且需要更改。所以我需要能够连接到这个正在运行(但延迟)的工作流并更改本地工作流变量,然后重新运行该操作。

我已经查看了工作流 4.0 中的消息相关性来实现这一点,但是因为延迟活动在我正在运行的工作流实例中处于活动状态,所以任何第二个服务调用都不会做任何事情(就像延迟活动正在阻止任何其他请求一样)。

我尝试将“CanCreateInstance”设置为 true 和 false,但它没有帮助。

谢谢!

4

2 回答 2

1

您需要将延迟活动放在 Parallel 容器中,并在其中包含接收任务。这意味着它将在等待循环处理的同时监听请求。

对于消息关联如何工作的示例,我发现Tailspin Travel示例非常有用。检查“等待确认”框中的“接收批准”任务,了解如何将请求绑定在一起。

于 2011-03-06T18:07:00.373 回答
0

不确定这是否是您问题的答案,但可能就是这样。如果您正在使用工作流实例存储和属性提升,您可以选择在下次加载工作流时更改实例存储中的属性。

于 2010-04-09T07:58:44.973 回答