.net 工作流基础4在长时间运行过程中的请求响应

.net 工作流基础4在长时间运行过程中的请求响应,.net,wcf,workflow-foundation,workflow-foundation-4,.net,Wcf,Workflow Foundation,Workflow Foundation 4,在WF 4.0中,解决以下问题的最简单方法是什么: 向WCF服务发送数据/请求,例如启动进程X的请求 获取一个简单的响应,反序列化输入的成功/失败仅表明处理已开始。 在自定义WF活动中继续处理可能需要几分钟的时间 终止 我的目标是在收到对象后立即将响应发送回WCF客户机,并在客户机不等待的情况下处理任何处理。当前,我的顺序工作流将锁定,直到自定义活动完成后再继续。您可以将请求发送到WCF中的“单向”方法以启动处理 [操作收缩通道=真] 虽然这不会发回响应,但可以假定,除非引发了故障,否则流程已启

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

向WCF服务发送数据/请求,例如启动进程X的请求 获取一个简单的响应,反序列化输入的成功/失败仅表明处理已开始。 在自定义WF活动中继续处理可能需要几分钟的时间 终止
我的目标是在收到对象后立即将响应发送回WCF客户机,并在客户机不等待的情况下处理任何处理。当前,我的顺序工作流将锁定,直到自定义活动完成后再继续。

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

[操作收缩通道=真]

虽然这不会发回响应,但可以假定,除非引发了故障,否则流程已启动。如果你需要指出,如果失败了,就抛出一些东西

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


对其中一些概念的介绍

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


我不认为这是解决方案,但可能是唯一的方法。

IsOneWay=true表示WCF操作没有响应。听起来他确实想要一个指示请求已被接收的响应。Good point post更新了,但是如果没有从呼叫中收到错误,您可以假定它已成功。如果不是,则引发FaultException。我想返回选择“是”的响应对象。我将我的临时解决方案添加到我自己的帖子中作为答案。您是否尝试使用并行活动来分支这两个步骤?一个分支用于响应,另一个分支用于重处理。