共用方式為


將工作流程部署為 Web 服務

Windows Workflow Foundation 架構支援 Web 服務互通性。 這包括能夠向 ASP.NET 用戶端和其他工作流程將工作流程公開為 Web 服務。 Windows Workflow Foundation 支援在 Web 伺服器上或在 Internet Information Services (IIS) 6.0 中執行 ASP.NET 的伺服器陣列上,將工作流程發行為 ASP.NET Web 服務。 因為 Windows Workflow Foundation Web 服務支援是以 ASP.NET 2.0 為基礎,所以它繼承了標準 ASP.NET Web 服務的大部分功能。

Windows Workflow Foundation 基礎活動程式庫包含 WebServiceInputActivityWebServiceOutputActivity 活動,讓工作流程能夠做為 Web 服務的端點。 如需使用 Web 服務活動的資訊,請參閱使用 WebServiceInputActivity 活動使用 WebServiceOutputActivity 活動

工作流程 Web 裝載

用於工作流程 Web 裝載的主要類別為:

WorkflowWebHostingModule

WorkflowWebHostingModule 類別是預設傳送機制,可使用 ASP.NET Cookie 將 Web 服務要求傳送至適當的工作流程執行個體。 當然,必須要有產生這些要求的用戶端來支援 Cookie。

雖然 Windows Workflow Foundation 提供這個預設傳送機制,但您可以實作自己的自訂傳送。 例如,當無法選擇在用戶端中啟用 Cookie 時,可將用戶端設定為以特定識別碼建立工作流程執行個體,並在每個 Web 服務要求上傳遞該識別碼。 可使用 SOAP 或 HTTP 處理常式設定要求管線來攔截呼叫、從標頭資訊擷取工作流程執行個體識別碼,再將 HttpContext.Current.Items.Add("__WorkflowInstanceId__", workflowInstanceId) 設定為傳入識別碼。

ManualWorkflowSchedulerService

ManualWorkflowSchedulerService 類別是 WorkflowSchedulerService 的特製化實作,它會控制在 ASP.NET 處理序中產生的執行緒數,方式是重複使用讓 ASP.NET Web 要求執行工作流程執行個體的執行緒。 這可以確保無論何時,工作流程執行階段中作用中執行緒的數目等於 ASP.NET 處理序中的作用中 Web 要求數目。

將公開的工作流程限制為 Web 服務

執行個體傳送會根據 ASP.NET 工作階段運作。 做為 Web 服務的消費者,它必須支援 ASP.NET Cookie。

即使在工作流程中,接收要求-傳送回應可模型化為非同步,但 ASP.NET 的一般限制會套用到 Web 服務的消費者,亦即執行個體無法在未處理的要求-回應作業之間移轉處理序。

工作流程 Web 服務使用 Cookie 持續追蹤狀態。 如果您將工作流程發行為 Web 服務,您必須在叫用它的用戶端程式碼中啟用 Cookie。 例如:

CalculatorWorkflow_WebService service = new CalculatorWorkflow_WebService();
service.CookieContainer = new System.Net.CookieContainer();

這可讓您在 'service' 物件上進行方法呼叫。

請參閱

參考

WebServiceInputActivity
WebServiceOutputActivity
WorkflowWebHostingModule
ManualWorkflowSchedulerService

概念

與其他工作流程通訊
使用 WebServiceInputActivity 活動
使用 WebServiceOutputActivity 活動

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.