[英]Workflow / Workflow Service combination? How to use Receive activity on 'normal' workflow?
我們目前正在嘗試在我們的產品(.NET 4.5)中實現工作流功能。 為此,我們考慮使用Microsoft Workflow Foundation 4.5。 然而,在這個早期階段,我們遇到了一個似乎非常可行的技術問題。
簡單地說,這就是我們想要在客戶端/服務器設置中實現的目標:
根據我的理解,“正常”工作流程沒有端點來接收消息。 另一方面,工作流服務可以,但是使用WF服務,工作流實例將根據傳入的請求創建,而不是讓服務器控制工作流的創建(對嗎?)。
在這一刻,在我看來,我們需要工作流和工作流服務的組合。
我一直在努力解決這個問題並且搜索高低,但找不到有用的信息。
我想我們有兩個選擇:
工作流程服務; 如果我們使用工作流服務,我們可以在啟動工作流的工作流的開頭有一個Receive活動。 但是,那么客戶如何與特定的工作流程進行溝通? 工作流服務具有一個特定URL。
工作流程; 由服務器應用程序托管的正常工作流似乎是最自然的選擇路徑。 但是,我們需要一種向其發送數據的方法。 那么,是否可以升級正常的工作流程以便可以使用Receive活動? 如果是這樣,怎么樣? 消息如何在正確的工作流實例中結束?
我的問題是:有沒有人對如何解決上述問題有一些有用的指導或信息? 是否有有趣的替代品(不使用WF?)來實現這一目標? 有沒有人有關於如何將WCF消息路由到WF中正確的工作流實例的文檔?
PS:我們在客戶端上提供WCF服務。 工作流程可以與之通信。 對於沒有問題的短期運行請求,但事實是請求可能需要很長時間才能讓客戶“回答”它們。 此外,如果用戶點擊了一個繼續按鈕,客戶端只能請求該信息(由於服務器需要信息,用戶不應該只是在某個中間彈出一個彈出窗口)
是的,使用AppFabric的工作流服務是理想的,如果我正確理解您的問題,應該開箱即用。
對於您的問題“然而,那么客戶如何與特定的工作流程進行溝通?” 答案是相關性,你可以在第一個接收中輕松設置。 您只需添加一個CorrelationHandle變量,並將傳入參數(ownerid?)和CorrelatesWith的Receive's CorrelatesOn設置為該句柄。 對所有其他接收執行相同操作,並始終將傳入消息路由到正確的實例。
AppFabric將幫助您的WF服務從內存中卸載並在空閑時間過長時保持不變,在新接收到時等等時喚醒。它還可以幫助您在IIS應用程序池中設置自動啟動。 WAS將根據傳入請求激活您的工作流服務。
如果您需要進一步的具體細節,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.