【发布时间】:2015-08-14 19:17:49
【问题描述】:
我有一个带有 HTTP 适配器的请求-响应接收端口的编排。如果编排中发生异常,HTTP 适配器仍会返回 200 状态。
是否可以让 HTTP 适配器返回 500 状态错误而不是 200?
我的 BizTalk 版本是 2010。
【问题讨论】:
标签: http biztalk biztalk-2010
我有一个带有 HTTP 适配器的请求-响应接收端口的编排。如果编排中发生异常,HTTP 适配器仍会返回 200 状态。
是否可以让 HTTP 适配器返回 500 状态错误而不是 200?
我的 BizTalk 版本是 2010。
【问题讨论】:
标签: http biztalk biztalk-2010
最好向调用者返回一条消息,其中包含一个可选的错误节点,您可以在其中将其作为业务异常引发。
如果获得 500 状态,相当多的系统会自动重试该消息,在这种情况下它会一直失败。
如果您在业务层面拒绝该消息,则需要确定该消息是否应该被接受(在这种情况下您需要修复您的代码)或者发件人是否有错误(在这种情况下他们需要修复他们发送的内容)。
【讨论】:
我不认为这可以通过 HTTP 适配器来完成,但您绝对可以使用 WCF-Custom 适配器来实现。不幸的是,BTS 2010 不提供对 WebHttp 绑定的轻松访问,但您可以使用 WCF-Custom 实现这一点,或者如果您想做 SOAP,您可以使用 WCF-BasicHttp。在故障端口上发回消息应生成 500 代码。
请记住,要实现这一点,您必须允许将故障消息路由到调用方,并且您可能希望有一个自定义 WCF 行为来清理消息以删除可能存在的敏感细节通过故障端口传输(例如堆栈跟踪信息)。
【讨论】: