Exception handling Biztalk业务流程请求响应异常处理

Exception handling Biztalk业务流程请求响应异常处理,exception-handling,biztalk,biztalk2006r2,Exception Handling,Biztalk,Biztalk2006r2,我有一个使用请求-响应端口调用web服务并等待响应的编排。 这是完美的工作 我现在正在进行测试以处理错误,并调用一个抛出除法为零异常的web服务。 业务流程没有将异常捕获为异常;这就好像我要返回的SOAP错误是一个常规字符串 但是,当我仅使用一个请求端口测试此行为时,我最终进入了业务流程的catch块,出现了被零除异常。 我还需要在请求-响应端口中捕获web服务异常,而不仅仅是单向端口。您必须首先遵守规则 为了在使用请求-响应端口时捕获Biztalk中作用域块内的异常,您可能必须执行以下操作 在

我有一个使用请求-响应端口调用web服务并等待响应的编排。 这是完美的工作

我现在正在进行测试以处理错误,并调用一个抛出除法为零异常的web服务。 业务流程没有将异常捕获为异常;这就好像我要返回的SOAP错误是一个常规字符串

但是,当我仅使用一个请求端口测试此行为时,我最终进入了业务流程的catch块,出现了被零除异常。
我还需要在请求-响应端口中捕获web服务异常,而不仅仅是单向端口。

您必须首先遵守规则

为了在使用请求-响应端口时捕获Biztalk中作用域块内的异常,您可能必须执行以下操作

  • 在用于绑定的物理请求-响应端口上将重试次数设置为0
  • 在业务流程内的逻辑请求-响应端口上启用“已传输”标志传递通知
  • 捕获“System.Web.Services.Protocols.SoapException”异常并根据需要处理它 希望这有帮助

    参考资料:看一下我在代码项目中的文章

    您看到的此类错误是因为来自web服务的HTTP响应存在问题。BizTalk尝试解析接收到的响应,并将其分解为标头和正文,然后解析标头。如果响应是格式错误的HTTP,则会导致此类错误。它使用SOAP librbary来解释响应消息,由于消息不好,它就崩溃了。可能会出现被零除的情况,因为它无法从报头中准确地获得响应长度,然后需要一些数学运算

    我会在线路上放置一个数据包嗅探器(如NetMon),查看实际发送到BizTalk的内容。如果BizTalk与HTTP不兼容(浏览规范或为傻瓜找到一个好的HTTP),它可能会做出不可预测的反应


    祝你好运。

    除了一个问题外,所有的事情都按照你写的那样做了。我使用的是动态端口,端口上没有重试计数属性(或者我没有看到)。你使用的是SOAP还是WCF适配器?