Сбои веб-службы Windows Workflow Foundation 4.0 и WCF (ошибка мыла) - PullRequest
0 голосов
/ 16 марта 2010

В моем приложении Workflow Foundation 4.0 RC есть пара сообщений WCF «Receive» и «SendReplyToReceive», которые отлично работают с простой операцией запрос / ответ, но у меня возникают проблемы при попытке выполнить проверку запроса и ответить с ошибка.

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

Кажется, что я могу ответить только объектом передачи данных (я даже не могу ответить выбором объекта).

Есть идеи? (Можете ли вы снова спасти мой день, Морис!?)

Спасибо!

1 Ответ

2 голосов
/ 18 марта 2010

Оказывается, это можно сделать, но это не так заметно, как хотелось бы. Я не думаю, что обнаружил бы это, если бы Мэтт Милнер и Дэйв Клифф не показали мне, как это работает.

Хитрость заключается в том, чтобы добавить второй SendReply для той же операции приема. Этот второй SendReply возвращает переменную типа FaultException, и его цель - помочь определить правильный контракт операции.

При возникновении ошибки либо просто сгенерируйте исключение FaultException, как обычно, уничтожая рабочий процесс, либо верните ошибку и оставьте рабочий процесс нетронутым, и теперь клиент увидит его как таковой.

Обновление: проверьте этот документ на наличие нового документа "Как отправлять и получать ошибки в службах Workflow". Также см. Мой пост в блоге здесь .

...