Verarbeiten von Nachrichten außerhalb der normalen ReihenfolgeOut-of-Order Message Processing

Workflowdienste können davon abhängig sein, dass Nachrichten in einer bestimmten Reihenfolge gesendet werden.Workflow services may depend on messages being sent in a specific order. Ein Workflowdienst enthält eine oder mehrere Receive-Aktivitäten, und jede Receive-Aktivität erwartet eine bestimmte Nachricht.A workflow service contains one or more Receive activities and each Receive activity is expecting a specific message. Ohne bestimmte Transportübermittlungsgarantien kann es vorkommen, dass von Clients gesendete Nachrichten verzögert und in einer Reihenfolge gesendet werden, die der Workflowdienst ggf. nicht erwartet.Without particular transport delivery guarantees, messages sent by clients may be delayed and therefore delivered in an order the workflow service may not expect. Das Implementieren eines Workflowdiensts, der das Senden von Nachrichten in einer bestimmten Reihenfolge nicht erfordert, wird normalerweise mithilfe einer Parallel-Aktivität durchgeführt.Implementing a workflow service that does not require messages be sent in a specific order is normally done using a Parallel activity. Bei einem komplizierteren Anwendungsprotokoll würde der Workflow schnell sehr komplex werden.For a more complicated application protocol, the workflow would become very complex very quickly. Die außerhalb der Reihenfolge-Nachricht, die in der Windows Communication Foundation (WCF)-Funktion verarbeitet wird, können Sie einen Workflow dieser Art ganz ohne die Komplexität geschachtelter Parallel-Aktivitäten erstellen.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. Verarbeitung von Nachrichten außerhalb der normalen Reihenfolge wird nur unterstützt, auf Kanäle, die Unterstützung von ReceiveContext wie z. B. die WCF-MSMQ-Bindungen.Out-of-order message processing is only supported on channels that support ReceiveContext such as the WCF MSMQ bindings.

Aktivieren der Verarbeitung von Nachrichten außerhalb der normalen ReihenfolgeEnabling Out-Of-Order Message Processing

Sie aktivieren die Verarbeitung von Nachrichten außerhalb der normalen Reihenfolge, indem Sie die AllowBufferedReceive-Eigenschaft für WorkflowService auf true festlegen.Out-of-order message processing is enabled by setting the AllowBufferedReceive property to true on the WorkflowService. Im folgenden Codebeispiel wird veranschaulicht, wie Sie die AllowBufferedReceive-Eigenschaft im Code festlegen.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  
};  

Sie können das AllowBufferedReceive-Attribut auch auf einen Workflowdienst in XAML anwenden, wie im folgenden Beispiel gezeigt.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>  

Siehe auchSee Also

ReceiveContext
WorkflowdiensteWorkflow Services
Warteschlangen und zuverlässige SitzungenQueues and Reliable Sessions