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 di messaggi nell'ordine non corretto in WCF (Windows Communication Foundation) consente di creare un flusso di lavoro simile senza la complessità derivante dalle attività Parallel annidate. L'elaborazione di messaggi nell'ordine non corretto è supportata solo in canali che supportano ReceiveContext, ad esempio le associazioni MSMQ di WCF.

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