我有一个编排,它使用请求响应端口来调用 Web 服务并等待响应。这工作得很好。

我现在正在做测试来处理错误,并且我正在调用一个抛出除零异常的 Web 服务。编排不会将异常捕获为异常;它的作用就好像我返回的 SOAP 错误是一个常规字符串。

然而,当我仅使用请求端口测试此行为时,我最终陷入了编排的 catch 块中,并出现除以零异常。我需要在请求响应端口中捕获 Web 服务异常,而不仅仅是在单向端口上。

有帮助吗?

解决方案

此类型你看到错误的,因为存在与来自所述web服务的HTTP响应中的问题。的BizTalk尝试分析接收到的响应和把它分解成标题和正文,然后解析报头。如果响应是畸形的HTTP,它会导致这样那样的错误。它使用SOAP librbary解释响应消息和监守消息是坏它炸毁。由零除法可能发生,因为它不能准确地获得响应长度形式的标题,然后scrogged一些数学。

我将放在线(等的NetMon)的分组嗅探器,看看实际上被发送到BizTalk。如果它不是HTTP兼容(浏览规范或找到假人良好的HTTP)时,BizTalk可以预见的未反应

好运。

其他提示

首先你得遵守规则!

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

  1. 在用于绑定的物理请求响应端口上将重试计数设置为 0。
  2. 在编排内的逻辑请求响应端口上将“传递通知”标记启用为“已发送”。
  3. 捕获“System.Web.Services.Protocols.SoapException”异常并根据需要进行处理。

希望这可以帮助。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top