순서에 상관없이 메시지 처리
워크플로 서비스는 특정 순서로 보내지는 메시지에 따라 달라질 수 있습니다. 워크플로 서비스는 하나 이상의 Receive 활동을 포함하고 각 Receive 활동은 특정 메시지를 기다립니다. 특정 전송 전달 보장이 없으면 클라이언트가 보낸 메시지가 지연되어 워크플로 서비스가 예상할 수 없는 순서로 배달될 수 있습니다. 메시지를 순서에 상관없이 보내도 되는 워크플로 서비스를 구현하는 작업은 일반적으로 병렬 활동을 사용하여 수행됩니다. 복잡한 애플리케이션 프로토콜의 경우 워크플로가 매우 빠른 속도로 매우 복잡해질 수 있습니다. 메시지를 순서에 상관없이 처리하는 WCF(Windows Communication Foundation)의 기능을 사용하면 중첩된 병렬 활동의 복잡도를 모두 제외한 워크플로를 만들 수 있습니다. 메시지를 순서에 상관없이 처리하는 기능은 WCF MSMQ 바인딩 같은 ReceiveContext를 지원하는 채널에서만 지원됩니다.
메시지를 순서에 상관없이 처리하는 기능 사용
메시지를 순서에 상관없이 처리하는 기능을 사용하려면 WorkflowService의 AllowBufferedReceive 속성을 true
로 설정합니다. 다음 예제는 코드에서 AllowBufferedReceive 속성을 설정하는 방법을 보여 줍니다.
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
또한 다음 예제와 같이 XAML에서 워크플로 서비스에 AllowBufferedReceive
특성을 적용할 수도 있습니다.
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowService AllowBufferedReceive="True">
<!--the actual children activities -->
</Sequence>