WF服务调用顺序问题

发布于 2024-11-26 23:25:08 字数 917 浏览 1 评论 0原文

我有 WWF,它有 3 个序列活动,每个序列都包含 ReceiveAndSendReply 活动。

Ex:
Sequence A
 ReceiveA (ApplicationObject)
 SendReplyA(ApplicationObject)-> initialize correlation with the user defined ID (ApplicationObject.id)
Sequence B
 ReceiveB (ApplicationObject) -> correlation on with the ID
 SendReplyB (Boolean)
Sequence C
 ReceiveC (ApplicationObject) -> correlation on with the ID
 SendReplyC (Boolean)

在三个后续阶段中调用三个服务。 我有两个问题

1) 流程工作正常直到序列 B,但是当我调用 ReceiveC 时,我在客户端收到错误

由于实例密钥“8f7ff672-1aba-35f1-f7d8-7dca44343be7”未与实例关联,InstancePersistenceCommand 的执行被中断。

2)有时我想一次又一次地调用ReceiveB。但是当我第二次调用 ReceiveB 时,我收到以下错误消息。

此时无法对标识符为“858ce665-6785-4840-8812-d277b2574a10”的服务实例执行“ApplicationScreeningRequest|{http://tempuri.org/}IApplicationService”操作。请确保操作按照正确的顺序执行,并且使用中的绑定提供有序交付保证。

任何人都可以帮我解决这个问题。

I have WWF, which is having 3 Sequences activities each sequence consist of ReceiveAndSendReply activities.

Ex:
Sequence A
 ReceiveA (ApplicationObject)
 SendReplyA(ApplicationObject)-> initialize correlation with the user defined ID (ApplicationObject.id)
Sequence B
 ReceiveB (ApplicationObject) -> correlation on with the ID
 SendReplyB (Boolean)
Sequence C
 ReceiveC (ApplicationObject) -> correlation on with the ID
 SendReplyC (Boolean)

Three services are called in three consequent stages.
I have two problems

1) The flow work fine until Sequence B, But when I call ReceiveC, I got an error in client side

The execution of an InstancePersistenceCommand was interrupted because the instance key '8f7ff672-1aba-35f1-f7d8-7dca44343be7' was not associated to an instance.

2)Sometimes I want to call ReceiveB again and again. But When I call ReceiveB in the second time I got following error message.

Operation 'ApplicationScreeningRequest|{http://tempuri.org/}IApplicationService' on service instance with identifier '858ce665-6785-4840-8812-d277b2574a10' cannot be performed at this time. Please ensure that the operations are performed in the correct order and that the binding in use provides ordered delivery guarantees.

Can anybody help me to fix this issues.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2024-12-03 23:25:08

也许我遗漏了一些东西,但通常一旦您第一次调用 ReceiveB,工作流将前进到序列 C。此时 ReceiveB 不再活动,后续调用将失败。

同样,如果您调用 ReceiveC 并且您要关联的 ID 位于 ReceiveB 的实例,则调用将会失败。

您是否希望每个接收都启动工作流程的新实例?如果是这样的话,而且这就是 WF4,那么无处不在的 Maurice工作流接收活动和消息关联

Maybe I'm missing something, but normally once you call ReceiveB the first time the workflow will progress to Sequence C. At that point ReceiveB is no longer active and subsequent calls to it will fail.

Likewise if you call ReceiveC and the instance whose ID you're correlating on is sitting at ReceiveB, it'll fail.

Are you wanting each Receive to start a new instance of the workflow? If that's the case and this is WF4, the ubiquitous Maurice has a nice blog entry on Workflow Receive activity and message correlation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文