Обработка неупорядоченных сообщений

Службы рабочих процессов могут зависеть от порядка отправки сообщений. Служба рабочих процессов содержит одно или несколько действий Receive. Каждое из этих действий Receive рассчитано на определенное сообщение. Поскольку доставка данных не гарантируется, отправляемые клиентами сообщения могут задерживаться и доставляться в порядке, на который служба рабочих процессов не рассчитана. Реализация службы рабочих процессов, которая не требует отправки сообщений в определенном порядке, обычно осуществляется с использованием параллельных действий. В результате усложнения протокола приложения рабочий процесс также слишком быстро становится сложным. Функция обработки сообщений вне порядка в Windows Communication Foundation (WCF) позволяет создавать такой рабочий процесс без всей сложности вложенных параллельных действий. Обработка сообщений вне порядка поддерживается только в каналах, поддерживающих ReceiveContext такие привязки WCF MSMQ.

Реализация обработки внеочередных сообщений

Чтобы включить обработку внеочередных сообщений, в WorkflowService установите свойство AllowBufferedReceive в значение true. В следующем примере кода показана установка свойства AllowBufferedReceive в коде.

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

Можно также применить атрибут AllowBufferedReceive к службе рабочих процессов в XAML, как показано в следующем примере.

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

См. также