2011-04-11 56 views
1

民間, 我一直有一些WF4問題的麻煩。 Ron Jacobs在他的endpoint.tv網絡直播(http://archive.msdn.microsoft.com/wf4BatchJob)中演示後,我正在爲批量引擎/工作計劃程序建模。在他的例子中,「工作分支」只是在一個while循環內計數。對於我的示例,我將消息發送到稱爲SampleEngine.xamlx的另一個工作流程,該工作流程將進行計數。每一次計數,這個工作流程都會回調到父級(JobScheduler.xamlx)並報告已完成的進度。這很好,我現在就可以開始工作 - 我可以在AppFabric儀表板和調用QueryProgress(調度程序工作流程中的發送/接收對)中安排工作並觀察它的進度。WF4下的AppFabric工作流不能正確恢復後IISreset

問題是,當我執行iireset來模擬服務器故障或其他問題時,工作流程(sampleengine.xamlx和jobscheduler.xamlx)都會重新聯機並顯示爲「進行中」。問題是他們都沒有跟蹤更多的事件 - 他們似乎在某個地方停滯不前。此外,它們都不會以與我通常看到WF服務響應時相同的方式響應服務消息,因爲沒有爲工作流的當前狀態安排接收活動。

我在世界各地添加了堅持不懈的活動,並確保在所有我的sendreply活動結束後堅持下去,但這並沒有改變。

正如我所說的,我對Ron的示例所作的唯一更改是,我的工作分支不在while循環中 - 它將一條消息發送到子工作流(sampleengine.xamlx)以啓動它。如果服務器在執行期間沒有關閉,那麼工作流程之間的相互關係都可以正常工作。

任何想到我需要在這裏做什麼,以便讓工作流在IISreset之後離開的地方得到很好的體會。羅恩的樣品一直在計算我的停止位置。

回答

0

確保在AppFabric配置中打開工作流的持久性存儲。它沒有默認啓用。

+0

訣竅是我在不同的應用程序中使用了我的子工作流服務,並且忽略打開工作流持久性併爲該服務「保持閒置狀態」。 – 2011-04-11 15:19:17