共用方式為


不按照順序的訊息處理

工作流程服務可能取決於訊息以特定順序傳送。 工作流程服務包含一個或多個 Receive 活動,各個 Receive 活動會預期某個特定的訊息。 要是沒有特定的傳輸傳遞保證,用戶端傳送的訊息可能會延遲,因而傳遞的順序可能不符合工作流程服務的預期。 實作不要求訊息以特定順序傳送的工作流程服務,通常會使用平行活動來完成。 若為更複雜的應用程式通訊協定,工作流程很快就會變得非常複雜。 Windows Communication Foundation (WCF) 中不按照順序的訊息處理功能可讓您建立這類工作流程,完全避免巢狀平行活動的複雜度。 只有在支援 ReceiveContext 的通道 (例如 WCF MSMQ 繫結) 上,才支援不按照順序的訊息處理。

啟用不按照順序的訊息處理

若要啟用不按照順序的訊息處理,請將 WorkflowService 上的 AllowBufferedReceive 屬性設定為 true。 下列範例示範如何利用程式碼設定 AllowBufferedReceive 屬性。

// Code: Opt-in to Buffered Receive processing...  
WorkflowService service = new WorkflowService  
{  
    Name="MyService",  
    Body = workflow,  
    AllowBufferedReceive = true  
};  

您也可以利用 XAML,將 AllowBufferedReceive 屬性套用到工作流程服務,如下列範例所示。

// Xaml: Opt-in to Buffered Receive processing...  
<WorkflowService AllowBufferedReceive="True">  
   <!--the actual children activities -->  
</Sequence>  

另請參閱