工作流程裝載選項
大部分的 Windows Workflow Foundation (WF) 範例是使用主控台應用程式中裝載的工作流程,但這並不是真實世界工作流程中的實際情況。 實際商務應用程式中的工作流程會裝載在持續性處理序中,這可能是開發人員撰寫的 Windows 服務,或是像 IIS 7.0 或 AppFabric 之類的伺服器應用程式。 這些方法之間差異如下。
在具有 Windows AppFabric 的 IIS 中裝載工作流程
使用具有 AppFabric 的 IIS 是工作流程的慣用主機。 使用 AppFabric 的工作流程主應用程式是 Windows 啟用服務,它會單獨由 IIS 中移除對 HTTP 的相依性。
只在 IIS 中裝載工作流程
不建議單獨使用 IIS 7.0,因為 AppFabric 有管理和監視工具,可協助維護執行中的應用程式。 如果有移至 AppFabric 的相關基礎結構顧慮,則工作流程應該只裝載在 IIS 7.0。
警告
IIS 7.0 會因為各種理由定期回收應用程式集區。 回收應用程式集區時,IIS 會停止接受訊息至舊集區,並產生新的應用程式集區以接受新的要求。 如果工作流程在傳送回應之後繼續運作,IIS 7.0 將不會知道正在執行的工作,且可能會回收進行裝載的應用程式集區。 如果發生這種情況,工作流程將會中止,而且追蹤服務會記錄 1004 - WorkflowInstanceAborted 訊息,其中的 [原因] 欄位是空的。
如果使用持續性,主機必須從上次的保存點,明確地將中止的執行個體重新啟動。
如果使用 AppFabric,工作流程管理服務最後會從上次的成功保存點 (如果使用持續性) 繼續工作流程。 如果沒有使用持續性,而且工作流程不是以「要求/回應」模式執行作業,資料將會在工作流程中止時遺失。
在自訂 Windows 服務中裝載工作流程
建立自訂工作流程服務來裝載工作流程,需要開發人員重複許多由 AppFabric 提供的全新功能,不過在自訂功能方面較有彈性。 唯有確定 AppFabric 不是選項時,才能考慮此選項。