Aracılığıyla paylaş


Tek Bir Eşzamanlılık Modunda İletilerin Sıralı İşlenmesi

WCF, temel alınan kanal oturum açmadığı sürece iletilerin işlenme sırası hakkında hiçbir garanti vermez. Örneğin, oturum açan bir kanal olmayan MsmqInputChannel kullanan bir WCF hizmeti iletileri sırayla işleyemedi. Bir geliştiricinin sıralı işleme davranışını istediği ancak oturumları kullanmak istemediği bazı durumlar vardır. Bu konuda, bir hizmet Tek Eşzamanlılık Modunda çalışırken bu davranışın nasıl yapılandırıldığı açıklanmaktadır.

Sıralı İleti İşleme

adlı EnsureOrderedDispatch yeni bir öznitelik öğesine ServiceBehaviorAttributeeklendi. True EnsureOrderedDispatch olarak ayarlandığında ve ConcurrencyModeSingle hizmete gönderilen iletiler sırayla işlenir. Aşağıdaki kod parçacığında bu özniteliklerin nasıl ayarlanacağı gösterilmektedir.

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

Başka bir değere ayarlanırsa ConcurrencyMode , bir InvalidOperationException oluşturulur.

Ayrıca bkz.