如何防止BizTalk 2013 / R2 WCF-WebHttp Rest SendPort挂起Http状态= 400

时间:2018-04-02 18:55:00

标签: rest biztalk biztalk-2013

我使用WCF-WebHttp SendPort从BizTalk业务流程调用供应商的REST服务。

即使我在带有scope.exception的业务流程中捕获此System.Exception,SendPort仍会被挂起。反正有没有阻止Susepend(WCF-CustomBehavior或Binding?)外部REST服务的大多数BizTalk消费者如何处理这个?

有许多不同的错误,一些用于安全性,一些用于可能以400状态返回的数据/配置,这是一个示例:

  

发送给适配器的消息" WCF-WebHttp"在发送端口" spP44WebHttp"   使用URI" https://test.abc.com/api/v3"暂停错误详情:   System.Net.WebException:远程服务器返回意外   回复:(400)不良请求。 {" httpStatusCode" 400" httpMessage":"差   请求"," errorMessage":"无法处理货件   请求""错误":[{"严重性":" ERROR""消息":"顾客-X才不是   支持这些辅助:   AIRPU""源":" SYSTEM"}]," supportReferenceId":" e0117674-9f83-4b42-b861-2e9b9f636323" }

当你有任何其他双向WCF发送的范围/异常时,例如WCF-SQL,当你发现错误时它不会让SendPort暂停,是吗?

相关:BizTalk Catch Http Response Code

更新1:我发现这个似乎是目标的TechNet帖子: https://social.technet.microsoft.com/wiki/contents/articles/33238.biztalk-server-2013-r2-handle-exceptions-from-rest-services-in-orchestration.aspx 但是,它表示他们无法发现错误。我可以捕获400个错误,但我不喜欢的是Suspended SendPort。

更新2:我正在尝试自定义行为,我将重置BeforeSendReply中的状态代码。但是使用调试器,我看到运行以下方法:Validate(),AddBindingParameters(),ApplyClientBehaviors(),BeforeSendRequest(),但是 - 我从未看到BeforeSendReply()运行。因此,如果BizTalk适配器不喜欢400状态,是否会阻止它重新进入自定义行为?

0 个答案:

没有答案