我有一個工作流,託管在工作流服務主機中,可以通過特定部分的三條路徑之一。我使用包含三個PickBranch活動的Pick活動創建了它。三個中的兩個具有ReceiveSendReply作爲觸發器,而另一個具有延遲。在分揀扳機或並行序列觸發時,延遲不會觸發
此時,我可以通過調用其中一個接收器來使工作流繼續,但如果我試圖讓延遲超時,它就不會發生。我也嘗試過在一個平行的活動中 - 再一次,接收者中的任何一個都會將工作流向前移動,但延遲時間不會超時/觸發。
我讀過的一切都表明它應該工作,但事實並非如此。我查看了工作流跟蹤日誌,我可以看到延遲正在執行,但它永遠不會回來。
146: Activity [160] "Delay Sequence" scheduled child activity [201] "Delay"
147: Activity [201] "Delay" is Executing
{
Arguments
Duration: 00:10:00
}
有什麼其他的方式可以模擬這個。看起來,Pick應該做我需要的事情,但我不能讓它工作。爲了完整性,我創建了一個非常簡單的應用程序,其中我使用兩個接收器作爲選擇分支的觸發器進行建模,並將延遲作爲另一個的觸發器,並且它在那裏運行...
任何幫助/想法都會最受讚賞。謝謝!
對不起 - 我應該說明了這一點(並編輯了這篇文章):工作流託管在工作流服務主機中。工作流程已保存並卸載。但是,我見過的所有內容都表明,當工作流程託管在工作流服務主機中時(我的情況就是如此),當發生延遲時,工作流服務主機負責檢查延遲是否存在過期並在必要時恢復。情況並非如此嗎? –
我相信是正確的。然而...如果你手動加載工作流會延遲火災? –
我花了一點時間試圖重新創建你的場景......但失敗了!我能夠使用帶有書籤和延遲活動的選擇作爲升級,這是一種非常常見的情況。我添加了在閒置時卸載的行爲,但沒有添加持久性。按預期工作。然後,我將它在Appfabric下運行以進行持久性和監控,並設置爲閒置時卸載。仍然有效。然後,我開始了一個新實例,確認它正在等待書籤殺死IIS。如預期的那樣,延遲並沒有發生。但是一旦apppool再次啓動,延遲就像預期的那樣開始。你在使用持久性嗎? –