Обработка ошибок Windows Workflow Foundation 4 (WF4)

Каков наилучший способ получения сообщений об ошибках из рабочего процесса WF4 обратно в приложение ASP.NET MVC для хостинга? Мне нужно, чтобы рабочий процесс не прерывался, но продолжал быть активным, а затем передавал обратно в хост-приложение сообщение об ошибке, чтобы пользователь мог предпринять альтернативное действие, но я не уверен, как это сделать.

5
задан skaffman 30 March 2010 в 13:59
поделиться

2 ответа

Чтобы поддерживать рабочий процесс, вам необходимо перехватить исключение в рабочем процессе. Добавьте действие TryCatch в рабочий процесс, и в блоке Catch вы можете использовать действие Send или настраиваемое действие для отправки данных в ведущее приложение.

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

6
ответ дан 14 December 2019 в 04:34
поделиться

TryCatch на самом деле недостаточно, когда дело доходит до WF4. Кроме того, обработка события UnhandledException от вашего узла рабочего процесса на самом деле мало что говорит вам о том, какое действие не удалось и почему.

Предлагаемый подход - использовать TryCatch и отслеживание активности в WF4. Хорошее резюме этого можно найти здесь: http://msmvps.com/blogs/theproblemsolver/archive/2009/11/27/trycatch-activity-in-wf4.aspx

Вы можете расширить свой рабочий процесс host с отслеживающими участниками и обработчиком catch, который инкапсулирует вашу активность, которая может вызвать сбой, обрабатывать исключение и создавать новую TrackingRecord, которая может лучше проиллюстрировать, что произошло.

2
ответ дан 14 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: