Поделиться через


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

Данный раздел относится к версии Windows Workflow Foundation 4.

Службы рабочих процессов могут зависеть от порядка отправки сообщений. Служба рабочих процессов содержит одно или несколько действий 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>

См. также

Справочник

ReceiveContext

Другие ресурсы

Службы рабочего процесса
Queues and Reliable Sessions