使用现有 wsdl 创建 BizTalk WCF 终结点

Posted

技术标签:

【中文标题】使用现有 wsdl 创建 BizTalk WCF 终结点【英文标题】:Creating a BizTalk WCF endpoint with existing wsdl 【发布时间】:2012-08-25 12:24:49 【问题描述】:

第三方供应商为我提供了他们希望能够调用的服务的 wsdl。是否可以根据现有的服务合同和架构在 BizTalk 中公开 WCF 端点,而无需尝试对其进行逆向工程?

【问题讨论】:

【参考方案1】:

这可以按如下方式完成:

从 Visual Studio 开始:

    在要导入架构的项目上,右键单击并选择Add Generated Items 选择使用 WCF 服务 在 BizTalk 使用向导上选择 Metadata Files (WSDL and XSD),然后添加 WSDL / XSD 文件,并为工件提供命名空间。 (请勿删除 .odx 文件,因为它包含端口类型) 然后创建 Orch 以处理传入消息,该消息返回适当响应类型的响应(例如,请参阅 ExposeWebService Biztalk 示例,分别使用供应商提供的请求和响应模式作为输入和输出)。使用导入的端口类型可以节省查找和分配模式以请求和响应的时间。该端口还将具有供应商期望的操作名称。 您需要构建项目并将其部署到 BTS。 然后可以使用BizTalk WCF publication wizard 发布网络服务,例如在本地 IIS 上。如果您通过消息框使用直接绑定,那么如果您已经有 WCF 接收端口,则不需要创建新的接收端口。您可以指定虚拟目录的名称,但请注意 BizTalk 将为 .svc 生成任意名称。 如果您还没有用于 BizTalk WCF 接收的应用程序池,则需要使用与 BizTalk 隔离主机相同的凭据创建一个 将上述向导创建的虚拟目录分配给应用程序池。 确保 BizTalk 中的接收位置正在运行

您现在应该能够导航到您的 orch 发布的虚拟根目录、添加服务引用、测试您的 orch 等。

由于您的集成供应商已经拥有 WSDL,如果您不想使用 IIS,也可以完全跳过发布(步骤 7-9),而是通过手动创建接收端口让 BizTalk 监听端口 80在 Biztalk 中使用 WCF 自定义。您可能需要use netsh 来允许此操作(除非您的 BizTalk 以管理员访问权限或类似权限运行,这是不可取的)。

【讨论】:

以上是关于使用现有 wsdl 创建 BizTalk WCF 终结点的主要内容,如果未能解决你的问题,请参考以下文章

如何从现有的 WSDL 和 XSD 文件生成 WCF 服务主机

WCF 生成的 wsdl 与为创建 WCF 服务而提供的原始 wsdl 不同?

BizTalk Web 参考 - 生成的 XSD 具有来自 WSDL 的“丢失”信息

如何使用 WSDL 文件创建 WCF 代理?

ServiceRoute + WebServiceHostFactory 杀死 WSDL 生成?如何使用 ?wsdl 创建无扩展 WCF 服务

使用 WCF WsdlExporter 如何创建与 singleWsdl 完全一样的 WSDL?