Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This topic applies to Windows Workflow Foundation 4 (WF4).
Workflow services may depend on messages being sent in a specific order. A workflow service contains one or more Receive activities and each Receive activity is expecting a specific message. Without particular transport delivery guarantees, messages sent by clients may be delayed and therefore delivered in an order the workflow service may not expect. Implementing a workflow service that does not require messages be sent in a specific order is normally done using a Parallel activity. For a more complicated application protocol, the workflow would become very complex very quickly. The out-of-order message processing feature in Windows Communication Foundation (WCF) allows you to create such a workflow without all of the complexity of nested Parallel activities. Out-of-order message processing is only supported on channels that support ReceiveContext such as the WCF MSMQ bindings.
Enabling Out-Of-Order Message Processing
Out-of-order message processing is enabled by setting the AllowBufferedReceive property to true on the WorkflowService. The following example shows how to set the AllowBufferedReceive property in code.
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
You can also apply the AllowBufferedReceive
attribute to a workflow service in XAML as shown in the following example.
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowService AllowBufferedReceive="True">
<!—the actual children activities -->
</Sequence>