工作流基础4.0在长时间运行的过程中的请求 - 响应

时间:2011-11-29 14:34:04

标签: .net wcf workflow-foundation workflow-foundation-4

在WF 4.0中解决以下问题的最简单方法是什么:

  • 将数据/请求发送到WCF服务(例如,启动进程X的请求)
  • 获取响应(简单,反序列化输入成功/失败),仅表示处理已开始。
  • 在自定义WF活动中继续处理(可能需要几分钟)
  • 结束

我的目标是在收到对象后立即将响应发送回WCF客户端,并在客户端等待的情况下处理任何处理。目前,我的顺序工作流会锁定,直到自定义活动完成后再继续。

2 个答案:

答案 0 :(得分:0)

您可以将请求发送到WCF中的“OneWay”方法以启动处理;

  

[OperationContract(IsOneWay = true)]

虽然这不会发回响应,但可以假设除非引发了故障,否则该过程已经开始。如果您需要表明如果失败,只需扔东西。

然后可以轮询另一种方法来检查初始请求的状态。或者,您可以使用WCF回调。

介绍其中一些概念What You Need To Know About One-Way Calls, Callbacks, And Events

答案 1 :(得分:0)

建议的解决方法是使用f.ex在响应活动后添加等待活动。 1秒或更长的时间跨度。这将强制发送响应,并在1秒后继续执行。

我不会称之为解决方案,但可能是唯一的方法。