Службы рабочих процессов могут зависеть от порядка отправки сообщений. Служба рабочих процессов содержит одно или несколько действий Receive. Каждое из этих действий Receive рассчитано на определенное сообщение. Поскольку доставка данных не гарантируется, отправляемые клиентами сообщения могут задерживаться и доставляться в порядке, на который служба рабочих процессов не рассчитана. Реализация службы рабочих процессов, которая не требует отправки сообщений в определенном порядке, обычно осуществляется с использованием параллельных действий. В результате усложнения протокола приложения рабочий процесс также слишком быстро становится сложным. Функция обработки сообщений вне порядка в Windows Communication Foundation (WCF) позволяет создавать такой рабочий процесс без всей сложности вложенных параллельных действий. Обработка сообщений вне порядка поддерживается только в каналах, поддерживающих ReceiveContext такие привязки WCF MSMQ.
Реализация обработки внеочередных сообщений
Чтобы включить обработку внеочередных сообщений, в WorkflowService установите свойство AllowBufferedReceive в значение true. В следующем примере кода показана установка свойства AllowBufferedReceive в коде.
C#
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
Можно также применить атрибут AllowBufferedReceive к службе рабочих процессов в XAML, как показано в следующем примере.
XAML
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowServiceAllowBufferedReceive="True"><!--the actual children activities --></Sequence>
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Узнайте, как писать код в приложениях .NET с помощью служебной шины Azure для обмена данными, которые могут обрабатывать высокие требования, низкую пропускную способность и аппаратные сбои.