BizTalk Server 2013 Rest错误处理

我正在使用BizTalk Server 2013 WCF-WebHttp适配器来调用REST API SalesForce.

当我收到不同于200的HTTP状态代码时,我的业务流程捕获SystemException,但我仍然暂停了一个发送端口实例.

是否有任何“本机”解决方案可以避免发送端口实例暂停?

我看过这篇文章:

BizTalk Server: REST Services Error Handling

但对于WCF-WebHttp适配器,CustomBinding选项不可用.
我试图添加错误消息,但我找不到合适的类型来捕获此异常.

你有什么主意吗 ?

最佳答案 不幸的是,没有

有一篇文章BizTalk Server 2013 R2: Handle exceptions from REST services in Orchestration的更新版本

您必须将发送端口设置为WCF-Custom并使用自定义绑定,然后从WCF-WebHttp重新创建所有设置.

更多细节要遵循.

更新:
将Orchestration中的异常作为系统异常捕获是好的,然后您可以检查错误以查看它是否是业务异常,例如如果您在执行创建或更新并获取404之前正在执行查询以查看RESTful服务中是否存在对象.

但是,您必须执行一些操作来停止端口上的Suspended消息.

1)在发送端口上的端口启用路由失败消息上停止Suspended消息.

2)然而,这意味着它将转到您处理失败消息的任何框架,从而导致业务异常引发大量错误

为了防止这种情况,您需要在异常处理程序上调整过滤器表达式,或者在异常处理框架中使用规则来忽略这些消息.

例如,我们使用ESB异常处理框架,我们调整规则以排除该特定的发送端口.

《BizTalk Server 2013 Rest错误处理》
ESB异常处理框架All.Exceptions端口

3)然而,你仍然需要有其他东西订阅失败的消息以使它们消失,我们使用一个自定义的空适配器,用过滤器来订阅错误.这意味着错误仅发送到业务流程.

《BizTalk Server 2013 Rest错误处理》

NULL适配器过滤表达式

点赞