工作流程服務可能取決於以特定順序傳送的訊息。 工作流程服務包含一或多個 Receive 活動,而且每個 Receive 活動都預期有特定訊息。 如果沒有特定的傳輸傳遞保證,客戶發送的訊息可能會延遲,因而以工作流程服務未預料的順序進行傳遞。 實作不需要以特定順序傳送訊息的工作流程服務,通常會使用平行活動來完成。 對於更複雜的應用程式通訊協定,工作流程會變得非常複雜。 Windows Communication Foundation (WCF) 中的順序錯亂訊息處理功能可讓您建立這類工作流程,而不需要巢狀平行活動的所有複雜度。 只有支援 ReceiveContext WCF MSMQ 系結等通道才支援順序錯亂的訊息處理。
啟用輸出Of-Order 訊息處理
要啟用順序錯亂的訊息處理,請在 WorkflowService 上將屬性AllowBufferedReceive設定為true。 下列範例示範如何在程式代碼中設定 AllowBufferedReceive 屬性。
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
您也可以將 AllowBufferedReceive 屬性套用至 XAML 中的工作流程服務,如下列範例所示。
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowService AllowBufferedReceive="True">
<!--the actual children activities -->
</Sequence>