使用具有BizTalk WCF服务的备用管道

时间:2014-08-01 17:50:58

标签: biztalk edi biztalk-2013

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

我所做的是:

  1. 基于XML格式(在我的情况下是医疗保健EDI XML架构)创建业务流程
  2. 在业务流程中创建尚未绑定到物理端口的双向端口
  3. 部署业务流程
  4. 运行BizTalk WCF服务向导以将业务流程公开为服务
  5. 此时,将发布期望BizTalk EDI XML架构的服务。由于这很复杂,并且我不想在BizTalk内置管道来执行此操作时将EDI字符串转换为此模式。

    为了实现这一目标,我接着做了以下步骤:

    1. 使用接受字符串
    2. 的双向端口创建虚拟业务流程
    3. 再次运行服务向导以将此业务流程发布为服务
    4. 将字符串架构从已发布的字符串服务复制到已发布的实际服务的App Data文件夹
    5. 修改实际服务中的服务XML文件以使用新的字符串模式而不是复杂的EDI模式
    6. 打开双向WCF端口的接收位置,将接收管道更改为“EDI接收”,将发送管道更改为“EDI发送”
    7. 虽然这确实让服务工作并发布了WSDL,但它似乎并不正确。当我向此服务添加服务引用时,服务引用只接受原始WCF消息对象(它不是特定的任何类型)。当我尝试手动构造消息并提交消息时,我收到一个错误响应,告诉我操作没有实现(就像你从NotImplementedException看到的那样)。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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