WF服务调用顺序问题
我有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许我遗漏了一些东西,但通常一旦您第一次调用 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.