2011-07-28 44 views
0

我有世界自然基金會,這是具有3個序列活動,每個序列包括ReceiveAndSendReply活動。WF服務調用順序Problme

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,我得到了在客戶端的錯誤

的InstancePersistenceCommand的執行被中斷,因爲實例鍵「 8f7ff672-1aba-35f1-f7d8-7dca44343be7'沒有關聯到一個實例。

2)有時我想一次又一次打電話ReceiveB。但是當我在第二次調用ReceiveB時,我收到了以下錯誤消息。

操作 'ApplicationScreeningRequest | {http://tempuri.org/} IApplicationService' 與識別符 '858ce665-6785-4840-8812-d277b2574a10' 服務實例不能在此時執行。請確保操作按正確的順序執行,並且使用的綁定提供了有序的交付保證。

任何人可以幫助我解決這個問題。

回答

1

也許我失去了一些東西,但通常一旦你撥打ReceiveB第一次工作流程進展到序列C.此時ReceiveB不再活躍,後續調用將失敗。

同樣,如果你打電話ReceiveC,其ID你相關上坐在ReceiveB實例,它會失敗。

你想每一個接收到啓動工作流的新實例?如果是這種情況,這是WF4,無處不在Maurice有一個很好的博客條目Workflow Receive activity and message correlation