我有一个使用请求响应端口的业务流程来调用Web服务并等待响应。 这很完美。
我现在正在进行测试以处理错误,我正在调用一个抛出除零异常的Web服务。 业务流程不会将异常作为例外捕获;它就像我回来的SOAP错误一样,是一个常规的字符串。
然而,当我仅使用请求端口测试此行为时,我最终在业务流程的catch块中以除零异常结束。 我还需要在请求响应端口中捕获Web服务异常,而不仅仅是单向端口。
答案 0 :(得分:1)
你必须先遵守规则!
为了在使用请求 - 响应端口时在Biztalk中捕获范围块中的异常,您可能必须执行以下操作...
希望这会有所帮助。
参考资料:看看我在代码项目中的文章 Code Project
答案 1 :(得分:1)
您看到的此类错误是因为来自Web服务的HTTP响应存在问题。 BizTalk尝试解析收到的响应并将其分解为标题和正文,然后解析标题。如果响应格式错误,则会导致此类错误。它正在使用SOAP librbary来解释响应消息,并且它会爆炸,因为消息很糟糕。除以零可能是因为它无法准确地从标题中获得响应长度,然后对数学进行了一些数学处理。
我会在线路上放置一个数据包嗅探器(如NetMon),看看实际发送到BizTalk的是什么。如果它不符合HTTP(浏览规范或找到一个好的HTTP用于假人),BizTalk可以做出不可预测的反应。
祝你好运。