AccessingOperationContext 샘플은 메시지 활동(Receive 및 Send)을 사용자 지정 범위 활동과 함께 사용하여 나가는 메시지 또는 들어오는 메시지 내에서 사용자 지정 메시지 헤더에 액세스하고, 이를 연결하거나 검색하는 방법을 보여 줍니다.
입증합니다
메시징 활동, ISendMessageCallback, IReceiveMessageCallback.
토론
이 샘플에서는 메시징 활동에서 확장성 지점(ISendMessageCallback) IReceiveMessageCallback을 사용하여 액세스 Current하는 방법을 보여 줍니다. 메시징 활동이 실행될 때 선택되는 IExecutionProperty의 구현으로, 콜백은 워크플로 런타임 내에 등록됩니다. 해당 IExecutionProperty 구현과 동일한 범위의 모든 메시징 활동이 영향을 받습니다. 특히 이 샘플에서는 사용자 지정 범위 작업을 사용하여 콜백 동작을 적용합니다. 클라이언트 워크플로에서 ISendMessageCallback는 워크플로의 Id을 나가는 MessageHeader로 포함하는 데 사용됩니다. 그런 다음 서비스에서 이 헤더를 IReceiveMessageCallback로 선택하여 헤더의 값을 콘솔에 출력합니다.
샘플 설정, 빌드 및 실행
이 샘플에서는 HTTP 엔드포인트를 사용하여 워크플로 서비스를 노출합니다. 이 샘플을 실행하려면 관리자 권한으로 Visual Studio를 실행하거나 관리자 권한 프롬프트에서 다음 명령을 실행하여 적절한 ACL을 추가하여 적절한 URL ACL을 추가해야 합니다(자세한 내용은 HTTP 및 HTTPS 구성 참조). 도메인 및 사용자 이름이 대체되었는지 확인합니다.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
URL ACL이 추가되면 다음 단계를 사용합니다.
솔루션을 빌드합니다.
솔루션을 마우스 오른쪽 단추로 클릭하고 시작 프로젝트 설정을 선택하여 여러 시작 프로젝트를 설정합니다.
서비스 및 클라이언트를 여러 시작 프로젝트로 추가합니다(해당 순서대로).
애플리케이션을 실행합니다. 클라이언트 콘솔에 두 번 실행되는 워크플로가 표시되고 서비스 창에 해당 워크플로의 인스턴스 ID가 표시됩니다.
.NET