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


Конечная точка управления рабочим процессом

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

Конечная точка управления рабочим процессом позволяет разработчику вызывать операции удаленного управления экземплярами рабочего процесса, которые размещены с помощью WorkflowServiceHost. Эта функция может быть использована для программного выполнения таких операций управления, как приостановка, возобновление и завершение.

Управление экземплярами рабочего процесса

Платформа .NET Framework, версия 4 включает новый контракт IWorkflowInstanceManagement. В нем определен ряд операций управления, которые обеспечивают возможность удаленного управления экземплярами рабочего процесса, размещенных с помощью WorkflowServiceHost. WorkflowControlEndpoint является стандартной конечной точкой, обеспечивающей реализацию контракта IWorkflowInstanceManagement. WorkflowControlClient представляет собой класс, который используется для отправки операций управления WorkflowControlEndpoint.

Экземпляры рабочих процессов могут иметь следующие состояния.

  • Активно
    Состояния экземпляра рабочего процесса до достижения завершенного состояния при условии, что экземпляр не находится в приостановленном состоянии. В этом состоянии экземпляр рабочего процесса запускается и обрабатывает сообщения приложения.
  • Приостановка
    В этом состоянии экземпляр рабочего процесса не запускается даже при наличии действий, которые не выполнялись или были выполнены частично.
  • Завершение
    Завершающее состояние экземпляра рабочего процесса. Экземпляр рабочего процесса не может выполняться после достижения завершенного состояния.

IWorkflowInstanceManagement

Интерфейс IWorkflowInstanceManagement определяет набор операций управления с синхронными и асинхронными версиями. Для версий с транзакциями необходимо использовать привязку с поддержкой транзакций. В следующей таблице перечислены поддерживаемые операции управления.

Операции управления Описание

Abort

Принудительно останавливает выполнение экземпляра рабочего процесса.

Cancel

Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние.

Run

Обеспечивает возможность запуска экземпляра рабочего процесса.

Suspend

Переводит экземпляр рабочего процесса из активного состояния в состояние ожидания.

Terminate

Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние.

Unsuspend

Переводит экземпляр рабочего процесса из состояния ожидания в активное состояние.

TransactedCancel

Выполняет операцию отмены для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

TransactedRun

Выполняет операцию выполнения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

TransactedSuspend

Выполняет операцию приостановки для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

TransactedTerminate

Выполняет операцию прекращения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

TransactedUnsuspend

Выполняет операцию возобновления для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

Контракт IWorkflowInstanceManagement не предусматривает возможности создания нового экземпляра рабочего процесса, а позволяет только управлять существующими экземплярами рабочего процесса. Дополнительные сведения удаленном создании нового экземпляра рабочего процесса см. в разделе Расширяемость узла службы рабочих процессов.

WorkflowControlEndpoint

WorkflowControlEndpoint является стандартной конечной точкой с фиксированным контрактом IWorkflowInstanceManagement. После добавления к экземпляру WorkflowServiceHost эта конечная точка может быть использована для отправки командных операций в любой экземпляр рабочего процесса, размещаемый в ведущем экземпляре. Дополнительные сведения о стандартных конечных точках см. в разделе Standard Endpoints.

WorkflowControlClient

WorkflowControlClient является классом, позволяющим отправлять сообщения управления WorkflowControlEndpoint в WorkflowServiceHost. Содержит метод для всех операций, поддерживаемых контрактом IWorkflowInstanceManagement, кроме транзакционных операций. WorkflowControlClient использует внешние транзакции для определения необходимости использования транзакционной операции.