Windows Workflow Foundation, исключения и повторные попытки?

У меня последовательный рабочий процесс с рядом действий. Одно из этих действий требует доступа к моей платной учетной записи S3. Он работает нормально, но, чтобы быть осторожным, я хотел бы убедиться, что он может обрабатывать непредвиденные ситуации, такие как «Хост не найден» или некоторый тайм-аут и т. Д.

Итак ... я бы обычно помещал код в ПОПЫТКУ / ПОИСК. Это нормально ... но я не уверен, что мне делать с рабочим процессом ... потому что, если код не может быть завершен правильно, остальная часть рабочего процесса не должна выполняться (в зависимости от логики этого рабочего процесса).

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

Может ли кто-нибудь сделать какие-либо предложения, ссылки на видеоролики или скриншоты, которые помогут показать, что для этого лучше всего?

ваше здоровье!


person Pure.Krome    schedule 10.11.2008    source источник


Ответы (2)


Взгляните на FaultHandlerActivity, который используется для обработки исключения типа, указанного свойством FaultType. Некоторые ссылки об обработке ошибок в WF:

Другой способ - использовать _3 _, который вызывается при возникновении исключения в контексте выполнения вашего действия.

person Panos    schedule 10.11.2008
comment
1) Ссылка идет на Google ГРЕЦИЯ, поэтому мне пришлось изменить ее на com.au (для себя: P), кстати, отличная ссылка! 2) Быстро пролистав эти ссылки, они не объясняют, как выполнить ПОВТОР в случае возникновения исключения. У вас есть какая-нибудь информация по этому поводу? - person Pure.Krome; 11.11.2008
comment
Ссылка теперь идет на google.com ... Я бы предложил обрабатывать повторные попытки внутри вашего кода и не пытаться реализовать с другими действиями. Например, вы можете раскрыть свойство MaxRetries в своем действии и выдать исключение только в том случае, если число превышено. - person Panos; 11.11.2008
comment
яр. я могу поставить try catch в условие цикла и выбросить исключение, если количество повторных попыток превышает. Звучит немного грубо - я надеялся, что есть действие, которое уже делает это. - person Pure.Krome; 11.11.2008

Вы также можете прочитать эту статью в блоге о настраиваемом действии Retry: http://www.pluralsight.com/community/blogs/matt/archive/2007/11/28/49315.aspx

Похоже, это именно то, что вам может понадобиться!

person Perhentian    schedule 16.12.2008