在我的模板工作流程的顶部我放置了一个ReceiveRequest / SendReply块,我想执行同步操作,然后启用用户客户端及时响应正在启动的工作流程。 客户通过WCF调用WF。
客户端了解当前请求的状态以及应用程序数据库中条目的状态。
例如,我创建一个订单,调用PlaceOrderWF,将DB上的订单状态设置为“Accepted”。然后,当WF正在执行检查,控制等操作时,客户端可以执行他想要的任何操作,......将订单的最终值设置为“已完成”或“错误”。
我希望客户端会在SendResponse块之后收到响应。实际上它似乎没有这种方式工作,但它等待某种“事件”来释放客户端。不幸的是,我没有任何事件可以触发这种行为。
要测试它,只需在SendResponde活动之后放置一个Delay活动,你就应该能够重现我正在谈论的行为。
有关如何避免此意外错误的任何提示?
答案 0 :(得分:5)
工作流程将继续并在当前线程上尽可能多地执行,因此不会立即返回到调用者。如果添加一个延迟时间较短的延迟,比如说1秒,则工作流程将导致工作流进入空闲状态,并将WCF响应发送到客户端,之后工作流将继续。