不按照順序的訊息處理
工作流程服務可能取決於訊息以特定順序傳送。 工作流程服務包含一個或多個 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>