外部提供者需要向我们的 BizTalk 环境发送回调。回调只是一个带有 XML 正文的 HTTP POST。
自然,我们不想在外部公开我们的 BizTalk,我们想在 Azure 中使用中继服务。
据我所知,BizTalk 中没有 WebHttpRelayBinding。有没有办法解决这个问题,还是我需要创建一个 .NET 服务来处理这个问题?
外部提供者需要向我们的 BizTalk 环境发送回调。回调只是一个带有 XML 正文的 HTTP POST。
自然,我们不想在外部公开我们的 BizTalk,我们想在 Azure 中使用中继服务。
据我所知,BizTalk 中没有 WebHttpRelayBinding。有没有办法解决这个问题,还是我需要创建一个 .NET 服务来处理这个问题?
您可以将 WebHttpRelayBinding 与 WCF 自定义适配器一起使用。在当前项目中,我们在 machine.config 中配置了绑定以及 TransportClientEndpointBehavior 和 ServiceRegistrySettings 行为。这使我们能够根据需要轻松配置 WCF 自定义适配器。
这很好用,并且支持 Microsoft 通过中继服务实现 REST 的方法。它并不能完全解决我们的问题。我们正在处理来自供应商的 AS2 流量。我们通过 AS2 接收 XML 有效负载。没关系。WebHttpRelay 处理 XML。问题是我们需要同步返回 S/MIME 确认(它们在 AS2 中称为 MDN)。为此,我们必须编写一个自定义行为来处理 WCF 中的“原始”格式。我们还必须编写几个简单的管道组件来处理 BizTalk 端的格式和消息属性问题。我们可以通过使用 WCF 构建自定义适配器来改进这一点,并将管道组件逻辑重构到服务模型级别的适配器中。