Dela via


Meddelandebearbetning som inte är i ordning

Arbetsflödestjänster kan bero på att meddelanden skickas i en viss ordning. En arbetsflödestjänst innehåller en eller flera Receive aktiviteter och varje Receive aktivitet förväntar sig ett specifikt meddelande. Utan särskilda transportleveransgarantier kan meddelanden som skickas av klienter fördröjas och därför levereras i en ordning som arbetsflödestjänsten kanske inte förväntar sig. Implementering av en arbetsflödestjänst som inte kräver att meddelanden skickas i en viss ordning utförs normalt med hjälp av en parallell aktivitet. För ett mer komplicerat programprotokoll skulle arbetsflödet bli mycket komplext mycket snabbt. Med funktionen för meddelandebearbetning i Windows Communication Foundation (WCF) kan du skapa ett sådant arbetsflöde utan all komplexitet i kapslade parallella aktiviteter. Out-of-order-meddelandebearbetning stöds endast i kanaler som stöder ReceiveContext till exempel WCF MSMQ-bindningar.

Aktivera bearbetning av meddelanden som inte är i ordning

Out-of-order-meddelandebearbetning aktiveras genom att true ställa in AllowBufferedReceive egenskapen på på WorkflowService. I följande exempel visas hur du anger egenskapen AllowBufferedReceive i kod.

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

Du kan också använda AllowBufferedReceive attributet för en arbetsflödestjänst i XAML enligt följande exempel.

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

Se även