2010-08-17 6 views
1

Есть ли способ восстановить из необработанного исключения, не связанного с отменой, завершением или прерыванием рабочего процесса?Workflow 4 Unhandled Exception Recovery

Что бы я хотел сделать, это перезапустить Workflow или просто зарегистрировать исключение, если это возможно. Мой рабочий процесс долго работает и размещается в WorkflowApplication, который находится в службе Windows.

На данный момент, если существует необработанное исключение, служба находится в «запущенном» состоянии, но мой рабочий процесс мертв в воде, и я хотел бы, чтобы «запустить» рабочий процесс снова в действие, даже если он должен полностью перезапустить свою последовательность.

Желательна ли компенсация в этом сценарии?

ответ

4

Если вы используете постоянство рабочего процесса и прервите рабочий процесс, он сможет перезапустить из последнего сохраненного состояния в хранилище. Добавление действий Persist в стратегических местах вашего рабочего процесса гарантирует, что прошедшее сохраненное состояние является точкой божества для перезапуска.

Обратите внимание, что с помощью WorkflowApplication в качестве хоста вы должны перезагрузить его самостоятельно. Лучшим способом было бы добавить обратный вызов свойства Aborted, которое запускается, когда рабочий процесс прерывается. Там вы создаете новую WorkflowApplication и загружаете тот же экземпляр рабочего процесса и возобновляете его.

+0

Это именно то, что я искал, спасибо за отличный ответ Морис :) – jlafay