워크플로 제어 엔드포인트를 사용하면 개발자가 제어 작업을 호출하여 호스트된 워크플로 인스턴스를 원격으로 제어할 수 있습니다 WorkflowServiceHost. 이 기능은 일시 중단, 다시 시작 및 종료와 같은 제어 작업을 프로그래밍 방식으로 수행하는 데 사용할 수 있습니다.
경고
트랜잭션 내에서 워크플로 제어 엔드포인트를 사용하고 제어되는 워크플로에 Persist 활동이 포함된 경우, 트랜잭션 시간이 초과될 때까지 워크플로 인스턴스가 차단됩니다.
워크플로 인스턴스 관리
.NET Framework 4.6.1은 라는 IWorkflowInstanceManagement새 계약을 정의합니다. 이 계약은 호스트되는 워크플로 인스턴스를 원격으로 제어할 수 있는 일련의 제어 작업을 정의합니다 WorkflowServiceHost. WorkflowControlEndpoint 는 계약의 구현을 제공하는 표준 엔드포인트입니다 IWorkflowInstanceManagement . WorkflowControlClient은 WorkflowControlEndpoint에 제어 작업을 보내는 데 사용되는 클래스입니다.
워크플로 인스턴스는 다음 상태 중 하나일 수 있습니다.
활동 중
워크플로 인스턴스가 완료된 상태에 도달하기 전과 일시 중단된 상태가 아닌 경우의 상태입니다. 이 상태에서 워크플로 인스턴스는 애플리케이션 메시지를 실행하고 처리합니다.
일시 중단됨
이 상태에서는 실행이 시작되지 않았거나 부분적으로 실행된 활동이 있더라도 워크플로 인스턴스가 실행되지 않습니다.
완료됨
워크플로 인스턴스의 최종 상태입니다. 완료된 상태에 도달한 후에는 워크플로 인스턴스를 실행할 수 없습니다.
IWorkflowInstanceManagement
인터페이스는 IWorkflowInstanceManagement 동기 및 비동기 버전을 사용하여 컨트롤 작업 집합을 정의합니다. 트랜잭션된 버전은 트랜잭션 인식 바인딩을 사용해야 합니다. 다음 표에서는 지원되는 컨트롤 작업을 나열합니다.
제어 작업 | 설명 |
---|---|
중지 | 워크플로 인스턴스의 실행을 강제로 중지합니다. |
취소 | 워크플로 인스턴스를 활성 또는 일시 중단된 상태에서 완료된 상태로 전환합니다. |
달려라 | 워크플로 인스턴스를 실행할 수 있는 기회를 제공합니다. |
일시 중단하십시오 | 워크플로 인스턴스를 활성 상태에서 일시 중단된 상태로 전환합니다. |
끝내다 | 워크플로 인스턴스를 활성 또는 일시 중단된 상태에서 완료된 상태로 전환합니다. |
일시 중단 해제 | 워크플로 인스턴스를 일시 중단된 상태에서 활성 상태로 전환합니다. |
거래취소 | 트랜잭션에서 취소 작업을 수행합니다(클라이언트에서 유입되거나 로컬로 생성됨). 시스템에서 워크플로 인스턴스의 지속성 상태를 유지하는 경우 이 작업을 실행하는 동안 워크플로 인스턴스를 유지해야 합니다. |
TransactedRun | 트랜잭션에서 실행 작업을 수행합니다(클라이언트에서 유입되거나 로컬로 생성됨). 시스템에서 워크플로 인스턴스의 지속성 상태를 유지하는 경우 이 작업을 실행하는 동안 워크플로 인스턴스를 유지해야 합니다. |
트랜잭션 일시 중단 | 트랜잭션에서 일시 중단 작업을 수행합니다(클라이언트에서 유입되거나 로컬로 생성됨). 시스템에서 워크플로 인스턴스의 지속성 상태를 유지하는 경우 이 작업을 실행하는 동안 워크플로 인스턴스를 유지해야 합니다. |
거래 종료 | 트랜잭션(클라이언트에서 유입되거나 로컬로 생성됨)에서 Terminate 작업을 수행합니다. 시스템에서 워크플로 인스턴스의 지속성 상태를 유지하는 경우 이 작업을 실행하는 동안 워크플로 인스턴스를 유지해야 합니다. |
거래해제잠금해제 | 트랜잭션(클라이언트에서 유입되거나 로컬로 생성됨)에서 일시 중단 취소 작업을 수행합니다. 시스템에서 워크플로 인스턴스의 지속성 상태를 유지하는 경우 이 작업을 실행하는 동안 워크플로 인스턴스를 유지해야 합니다. |
계약은 IWorkflowInstanceManagement 새 워크플로 인스턴스를 만드는 수단을 제공하지 않고 기존 워크플로 인스턴스를 관리하기 위한 수단만 제공합니다. 새 워크플로 인스턴스를 원격으로 만드는 방법에 대한 자세한 내용은 워크플로 서비스 호스트 확장성을 참조하세요.
워크플로우컨트롤엔드포인트
WorkflowControlEndpoint 는 고정 계약이 IWorkflowInstanceManagement있는 표준 엔드포인트입니다. 인스턴스에 WorkflowServiceHost 추가된 경우 이 엔드포인트를 사용하여 호스트 인스턴스에서 호스트하는 모든 워크플로 인스턴스에 명령 작업을 보낼 수 있습니다. 표준 엔드포인트에 대한 자세한 내용은 표준 엔드포인트를 참조하세요.
WorkflowControlClient
WorkflowControlClient는 WorkflowControlEndpoint에서 WorkflowServiceHost에게 제어 메시지를 보낼 수 있도록 해주는 클래스입니다. 트랜잭션된 작업을 제외하고, IWorkflowInstanceManagement 계약에서 지원하는 각 작업에 대한 메서드를 포함합니다. WorkflowControlClient 는 앰비언트 트랜잭션을 사용하여 트랜잭션 작업을 사용해야 하는지 여부를 결정합니다.