Elaborazione di messaggi ordinata in modalità di concorrenza singolaOrdered Processing of Messages in Single Concurrency Mode

WCF non garantisce l'ordine in cui vengono elaborati i messaggi, a meno che il canale sottostante sia con sessione.WCF makes no guarantees about the order in which messages are processed, unless the underlying channel is sessionful. Ad esempio, un servizio WCF che utilizza MsmqInputChannel, che non è un canale con sessione, non sarà possibile elaborare messaggi in ordine.For instance, a WCF service that uses MsmqInputChannel, which is not a sessionful channel, will fail to process messages in order. Ci sono casi in cui uno sviluppatore può vuole che l'ordine nel comportamento di elaborazione ma non si desidera utilizzare sessioni.There are some circumstances where a developer may want the in order processing behavior but not want to use sessions. In questo argomento viene descritto come configurare questo comportamento quando un servizio è in esecuzione in modalità di concorrenza singola.This topic describes how to configure this behavior when a service is running in Single Concurrency Mode.

Elaborazione di messaggi in ordineIn-order Message Processing

A EnsureOrderedDispatch è stato aggiunto un nuovo attributo denominato ServiceBehaviorAttribute.A new attribute called EnsureOrderedDispatch has been added to the ServiceBehaviorAttribute. Quando l'oggetto EnsureOrderedDispatch è impostato su true e ConcurrencyMode è impostato su Single, i messaggi inviati al servizio verranno elaborati in ordine.When EnsureOrderedDispatch is set to true and ConcurrencyMode is set to Single messages sent to the service will be processed in order. Nel frammento di codice seguente viene illustrato come impostare questi attributi.The following code snippet illustrates how to set these attributes.

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single, EnsureOrderedDispatch = true )]  
    class Service : IService  
    {  
         // ...  
    }  

Se l'oggetto ConcurrencyMode è impostato su qualsiasi altro valore, viene generato un oggetto InvalidOperationException.If ConcurrencyMode is set to any other value, an InvalidOperationException is thrown.

Vedere ancheSee Also

Sessioni, istanze e concorrenzaSessions, Instancing, and Concurrency
ConcorrenzaConcurrency