2010-08-22 40 views
2

我創建了一個示例工作流服務。我在無序調用它時遇到問題。以下所有接收活動具有相同的相關性。當工作流在GetData()上啓動並且客戶端嘗試調用第4個或第3個接收活動時,它會導致超時。我期待拋出回工作流服務ReceiveAndSendReply無序調用超時

操作 '四| {} http://tempuri.org/ IService' 與標識符 '04e7f5aa-5e01-47ac-8a6e-b20492c5ac19' 服務實例 不能在這個時候進行。 請確保操作是 執行正確的順序和 ,使用的綁定提供 有序的交貨保證。

但是,當我搬出第二個接收活動並刪除包括延遲在內的選項時,它工作正常並且拋出預期結果。

投擲超時:

_http://img816.imageshack.us/img816/8344/receivetimeout.jpg

工作:

_http://img843.imageshack.us/img843/2371/receiveworking.jpg

感謝, - 羅納德

回答

0

問題是導致乙在使用接收和延遲活動組合的情況下處理消息的方式是一個問題。基本上,只要您開始爲混音添加延遲活動,工作流程調度程序就會保留它無法處理的任何傳入WCF消息,因爲它假定延遲到期時可能會發生。不是你在這些情況下尋找的行爲,但這是它的方式。

現在最好的解決方法是不使用延遲活動,而是使用某個外部服務的接收活動,該服務在過期時發送超時請求。