Способ, которым WWF генерирует исключение ошибки SOAP, когда в WWF 4 используется корреляция на основе содержимого, оказывается проблематичным для клиентов SOAP, которые не используют .NET. У меня есть сторонние клиенты, которые подключаются к моим службам на основе WWF 4, и они плохо справляются с обработкой исключений, возникающих, когда используемый ими идентификатор корреляции на основе содержимого не может коррелировать с экземпляром рабочего процесса или когда вызов выполняется в неподходящее время в рабочем процессе экземпляра.
Я пытаюсь определить лучший подход, чтобы дать тем, кто подключается к услуге. Один из них, конечно, просто сказать им перехватывать любые ошибки, которые выдаются как исключения ошибок. Однако некоторые из них подключаются через готовые приложения, которые предназначены для выполнения мыльных вызовов и реагирования на возвращаемые результаты. Поскольку они не элегантно обрабатывают исключения ошибок, я подумываю обернуть службу WWF службой WCF, которую могут вызывать эти сторонние клиенты. В сервисе-обёртке я переадресую их вызов в сервис WWF и поймаю все исключения корреляции и верну клиенту соответствующий ответ мыла, вместо того, чтобы отправлять исключение ошибки клиенту.
Я ненавижу добавлять этот дополнительный уровень обслуживания, и мне было интересно, есть ли у кого-нибудь какие-либо предложения или лучший подход?
Есть ли способ отловить ошибку корреляции в службе WWF и вернуть правильно сформированный ответ клиенту?
Или же возникает ошибка корреляции на уровне протокола WWF, и нет способа отловить это в рабочем процессе?