我正在尝试创建一个处理 XML 格式的 BizTalk 业务流程,然后将此业务流程公开为接收和返回字符串的 WCF 服务,使用特定的发送和接收管道将字符串与 XML 格式之间的转换由编排。
我所做的是这样的:
- 基于 XML 格式创建编排(在我的例子中是医疗保健 EDI XML 模式)
- 在编排中创建尚未绑定到物理端口的双向端口
- 部署编排
- 运行 BizTalk WCF 服务向导以将业务流程公开为服务
此时,服务已发布,需要 BizTalk EDI XML 架构。由于这很复杂,并且当 BizTalk 具有内置管道来执行此操作时,我不想执行将 EDI 字符串转换为此架构的工作。
为了做到这一点,我做了以下步骤:
- 使用接受字符串的双向端口创建虚拟编排
- 再次运行服务向导以将此编排发布为服务
- 将已发布的字符串服务中的字符串模式复制到已发布的真实服务的 App Data 文件夹中
- 修改真实服务中的服务 XML 文件以使用新的字符串架构而不是复杂的 EDI 架构
- 打开双向 WCF 端口的接收位置,将接收管道更改为“EDI Receive”,将发送管道更改为“EDI Send”
虽然这确实让服务工作并发布 WSDL,但它似乎并不正确。当我向该服务添加服务引用时,该服务引用只接受一个原始 WCF 消息对象(它没有作为任何特定类型输入)。当我尝试手动构建一条消息并提交它时,我收到一个错误响应,告诉我该操作未实现(就像您从NotImplementedException
)。
我做错了吗?这似乎不应该那么复杂,但我很难过。