Elaborazione di messaggi nell'ordine non corretto

I servizi flusso di lavoro possono dipendere da messaggi inviati in un ordine specifico. Un servizio flusso di lavoro contiene una o più attività Receive e ogni attività Receive attende un messaggio specifico. Senza particolari garanzie di recapito di trasporto, i messaggi inviati dai client possono essere differiti e pertanto recapitati in un ordine inatteso dal servizio flusso di lavoro. L'implementazione di un servizio flusso di lavoro che non richiede l'invio di messaggi in un ordine specifico viene in genere effettuata mediante un'attività Parallel. Per un protocollo dell'applicazione più complicato, il flusso di lavoro diverrebbe rapidamente molto complesso. La funzionalità di elaborazione dei messaggi non ordinata in Windows Communication Foundation (WCF) consente di creare un flusso di lavoro di questo tipo senza tutta la complessità delle attività parallele annidate. L'elaborazione dei messaggi non ordinati è supportata solo nei canali che supportano ReceiveContext associazioni WCF MSMQ.

Abilitazione dell'elaborazione di messaggi nell'ordine non corretto

L'elaborazione dei messaggi nell'ordine non corretto viene abilitata impostando la proprietà AllowBufferedReceive su true in WorkflowService. Nell'esempio riportato di seguito viene illustrato come impostare la proprietà AllowBufferedReceive nel codice.

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

È inoltre possibile applicare l'attributo AllowBufferedReceive a un servizio flusso di lavoro in XAML, come indicato nell'esempio seguente.

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

Vedi anche