重定向失败消息时双向接收端口超时

Timeout in two-way receive port when redirecting failed messages

我有一个双向 WCF 接收端口,我已经检查了两个端口:

1) 路由失败消息

2) 失败时暂停请求消息

需要此配置才能将失败的消息重定向到我们的 "exception portal"。

当收到消息但在 XMLReceive 管道中验证失败时,消息将按预期重定向到我们的 "exception portal"。

然而,问题是 WCF 服务的消费者永远不会出错,因此连接会在一段时间后超时,这让消费者非常困惑。

有办法解决这个问题吗?我错过了什么吗?

当前发生的情况是消息在接收管道上失败,被路由到您的门户,但没有响应被路由回。您必须确保发回消息。您可以通过以下方式做到这一点:

  • 创建一个执行验证的编排(而不是在管道上执行),并确保在编排中发送响应并将失败路由到您的门户
  • 创建一个验证消息的自定义组件(可能通过在 try 块中调用 XML 验证管道并捕获异常而不重新抛出);如果出错,它会将消息发送到您的门户,并用发送回合作伙伴的合理内容替换 pInMsg
  • 让您的门户接收位置成为一个请求响应端口(或许,同样,背后有一个编排),并将响应路由回 WCF 双向端口。这种方式涉及更多,老实说,我不完全确定这里的工作实现会是什么样子,但它可能是可能的。

如果由我决定,我会选择 Orchestration。您当然可以从编排调用 XML Validator 管道,或者您可以在其中使用其他验证逻辑(例如调用 BRE)。