1

我正在尝试创建一个处理 XML 格式的 BizTalk 业务流程,然后将此业务流程公开为接收和返回字符串的 WCF 服务,使用特定的发送和接收管道将字符串与 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 Receive”,将发送管道更改为“EDI Send”

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

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

4

1 回答 1

1

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

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

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

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

于 2014-08-01T17:57:48.543 回答