【问题标题】:Using an alternate pipeline with a BizTalk WCF service将备用管道与 BizTalk WCF 服务一起使用
【发布时间】:2014-09-24 23:49:29
【问题描述】:

我正在尝试创建一个处理 XML 格式的 BizTalk 业务流程,然后将此业务流程公开为接收和返回字符串的 WCF 服务,使用特定的发送和接收管道将字符串转换为 XML 格式和从 XML 格式转换字符串由编排使用。

我所做的是这样的:

  1. 根据 XML 格式创建编排(在我的例子中是医疗保健 EDI XML 模式)
  2. 在编排中创建一个尚未绑定到物理端口的双向端口
  3. 部署编排
  4. 运行 BizTalk WCF 服务向导以将业务流程公开为服务

此时,服务已发布,需要 BizTalk EDI XML 架构。由于这很复杂,并且当 BizTalk 具有内置管道来执行此操作时,我不想执行将 EDI 字符串转换为此架构的工作。

为了做到这一点,我做了以下步骤:

  1. 使用接受字符串的双向端口创建虚拟编排
  2. 再次运行服务向导以将此业务流程发布为服务
  3. 将字符串架构从发布的字符串服务复制到发布的真实服务的App Data文件夹中
  4. 修改实际服务中的服务 XML 文件以使用新的字符串架构而不是复杂的 EDI 架构
  5. 打开双向 WCF 端口的接收位置并将接收管道更改为“EDI 接收”,将发送管道更改为“EDI 发送”

虽然这确实让服务工作并发布 WSDL,但它似乎并不正确。当我向该服务添加服务引用时,该服务引用只接受一个原始 WCF 消息对象(它没有作为任何特定类型输入)。当我尝试手动构建一条消息并提交它时,我收到一个错误响应,告诉我该操作未实现(就像您从 NotImplementedException 看到的那样)。

我做错了吗?这似乎不应该那么复杂,但我很难过。

【问题讨论】:

    标签: biztalk edi biztalk-2013


    【解决方案1】:

    所以,我确实认为你让事情变得比他们需要的复杂得多。

    这就是我认为你的计划失败的地方。当您使用 Xml 架构发布服务时,您正在为基于文档的服务创建元数据,基本上只是包装在 SOAP 信封中的 Xml 文档。

    但是,您不能使用 EDI 所在的字符串来执行此操作。在这种情况下,字符串必须作为字符串参数传递。

    那么,我的第一个问题是它必须是 SOAP 服务吗?在实践中,一个简单的 HTTP 帖子就需要 9/10 次。

    【讨论】:

    • 它不是 SOAP 服务的要求,但我们现有的所有服务都是,如果其他人需要,我们希望在我们的组织内发现该服务称它为。但如果使用不同的绑定可以解决这个问题,我会全力以赴。
    • SOAP 很棒,但我总是使用 HTTP POST 打开,因为对于共享文档、Xml 或 EDI,SOAP 确实提供的不多,IMO。要发送或接收简单的 HTTP POST,请将 customBinding 与 wither httpTransport 或 httpsTransport、编码器(通常可以使用 textMessageEncoding)以及适合的安全行为一起使用。而已。 POST 的流是命中的管道,为 EDI 反汇编程序做好了准备。
    • 我关心的是异常处理,如果我们确定在某个时候需要传递额外的数据,但我今天会尝试连接更简单的绑定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2011-03-26
    相关资源
    最近更新 更多