【问题标题】:Behaviour of SendResponse in WF4WF4 中 SendResponse 的行为
【发布时间】:2024-01-18 00:12:01
【问题描述】:

在我的模板工作流的顶部,我放置了一个 ReceiveRequest / SendReply 块,我想在其中执行同步操作,从而使用户客户端能够及时接收正在启动的工作流的响应。 客户端通过 WCF 调用 WF。

客户端通过我的应用程序数据库上的条目状态了解当前请求的状态。

例如,我创建一个订单,调用 PlaceOrderWF,将 DB 上的订单状态设置为“已接受”。然后,客户端可以在 WF 进行检查、控制等时执行任何他想要的操作,...,将订单的最终值设置为“已完成”或“错误”。

我希望客户端会在 SendResponse 块之后收到响应。实际上它似乎并没有以这种方式工作,但它等待某种“事件”来释放客户端。不幸的是,我没有证据表明有事件触发了这种行为。

要对其进行测试,只需在 SendResponde 活动之后放置一个延迟活动,您应该能够重现我所说的行为。

关于如何避免这种不必要的错误的任何提示?

【问题讨论】:

    标签: xaml workflow workflow-foundation-4 xamlx


    【解决方案1】:

    工作流将继续并在当前线程上尽可能多地执行,因此不会立即返回给调用者。如果您在工作流中添加一个带有小超时(例如 1 秒)的延迟,则此将导致工作流空闲并将 WCF 响应发送到客户端,之后工作流将继续。

    【讨论】:

      最近更新 更多