如何使用 BizTalk WCF 服务发布向导将业务流程发布为 WCF 服务

可使用 BizTalk WCF 服务发布向导将业务流程发布为 WCF 服务。

注意

在运行 BizTalk WCF 服务发布向导之前,必须生成 BizTalk 项目。 这些 BizTalk 项目必须包括至少具有一个公用类型修饰符的接收端口的业务流程。 在创建端口以后,此类型修饰符存在于该业务流程的属性中。

将业务流程发布为 WCF 服务

  1. 单击“开始”,指向“所有程序”,指向“BizTalk Server”,然后单击“BizTalk WCF 服务发布向导”。

    注意

    若要创建 BizTalk 业务流程和架构并使用 WCF 适配器将其发布为 WCF 服务,可以使用 BizTalk WCF 服务发布向导。 若要使用 SOAP 适配器将业务流程和架构发布为 Web Services,可以使用 BizTalk Web Services 发布向导。

  2. “欢迎使用 BizTalk WCF 服务发布向导” 页上,单击“ 下一步”。

  3. 在“ WCF 服务类型 ”页上,选择“ 服务终结点 ”选项,以在 BizTalk 程序集中的所选 BizTalk 业务流程上发布 WCF 服务。

    WCF 服务类型页

  4. 在“WCF 服务类型”页上,选择“启用元数据终结点检查框”以指示 Internet Information Services 托管的独立 WCF 接收位置是否 (IIS) 发布服务元数据以使用 HTTP/GET 请求进行检索。 通过启用此检查框,向导将生成 Web.config serviceMetadata> 元素的<httpGetEnabled 属性设置为 true。 您可以使用元数据导入工具(如 SvcUtil.exe)生成在开发环境中调用此服务所需的客户端代码。 发布元数据的地址是终结点地址加上 ?wsdl 查询字符串。

    注意

    为了避免无意中泄漏可能的敏感服务元数据,建议在生产环境中禁用此行为。 这可通过将 httpgetenabled 设置为 false 完成,或删除 MEX 虚拟目录。

  5. 在“ WCF 服务类型 ”页上的“ 适配器名称 (传输类型) 下拉列表中,选择发布 WCF 服务的隔离 WCF 适配器。 可以选择以下任意适配器:

    • WCF-BasicHttp。 WCF-BasicHttp 适配器可与符合 WS-I Basic Profile 1.1 的 Web Services(如基于 ASMX 的服务)进行通信。

    • WCF-WSHttp。 WCF-WSHttp 适配器可通过 HTTP 和 HTTPS 上的 WS-* 标准与服务通信。

    • WCF-CustomIsolated。 WCF-CustomIsolated 适配器支持通过 HTTP 传输使用 Windows Communication Foundation (WCF) 扩展性功能。

  6. 在“WCF 服务类型”页上,选择“在以下应用程序中创建 BizTalk 接收位置”检查框,以创建与在“适配器名称”下拉列表中选择的 WCF 适配器的每个生成的 .svc 文件对应的接收端口和位置。 如果接收位置已经存在,则不会替换它。 选择此选项后,在 BizTalk 应用程序名称 下拉列表中选择将生成接收端口和位置的应用程序,然后单击“ 下一步”。

  7. “创建 WCF 服务 ”页上,选择“ 将 BizTalk 业务流程发布为 WCF 服务”,并单击“ 下一步”。

    “创建 WCF 服务”页

  8. “BizTalk 程序集 ”页上的“ BizTalk 程序集文件 (*.dll) ”文本框中,键入 BizTalk 程序集文件的名称,或单击“ 浏览 ”以浏览到包含要发布的业务流程 () 的程序集,然后单击“ 下一步”。

    注意

    在选择 BizTalk 程序集文件之前,请将所有依赖程序集复制到包含 BizTalk 程序集的同一文件夹中,或将依赖程序集安装到全局程序集缓存 (GAC) 。

    注意

    如果将 BizTalk 程序集文件安装到 GAC 中,请确保 GAC 中的程序集已使用将在 “BizTalk 程序集 ”对话框中选择的程序集进行更新。 如果 GAC 中的程序集具有相同的完全限定名称,BizTalk WCF 服务发布向导将使用 GAC 中的程序集文件,而不是所选程序集文件。

    注意

    路径长度超过 260 个字符时,可能会出现错误消息,指示路径太长。

    BizTalk 程序集页

  9. 在“ 业务流程和端口 ”页上,单击加号 (+) 展开每个程序集和业务流程的树节点。 通过选择相应的树节点检查框来选择要发布的业务流程和端口。 如果要为所有选定的接收端口创建一个 WCF 服务 (.svc 文件) ,而不是为每个接收端口创建一个 WCF 服务,请选择“ 将所有选定的端口合并到单个 WCF 服务 ”选项,然后单击“ 下一步”。

    注意

    将所有选定端口合并到单个 WCF 服务后,所有选定端口都具有相同的端口类型,并且端口中的操作名称都是唯一的。

    操作和端口页

  10. “WCF 服务属性” 页上的“ WCF 服务的目标名称空间 ”文本框中,键入 WCF 服务的目标命名空间,然后单击“ 下一步”。

    WCF 服务属性页

  11. “WCF 服务位置 ”页上的“ 位置 ”文本框中,键入生成 WCF 服务的 Web 目录名称。 可以接受默认位置 (http://localhost/<BizTalk Assembly Name>) ,在“ 位置 ”文本框中键入 WCF 服务的位置,或单击“ 浏览 ”并选择 Web 目录。 选择以下任何选项:

    • 覆盖现有项目。 仅当 Web 目录已存在时,此选项才可用。 仅当选择了此选项时,您才能够发布到同一位置。 否则,必须输入不同的项目位置。

    • 允许匿名访问 WCF 服务。 此选项会为已创建的虚拟目录添加匿名访问权限。 默认情况下,虚拟目录继承其父虚拟目录或网站(如果该目录是顶级虚拟目录)的访问权限。

      完成此页面后,单击“ 下一步”。

      WCF 服务位置页

    注意

    项目位置可位于其他服务器上。 若要将 WCF 服务发布到其他服务器,请将项目名称键入为 http://<servername>/<WCF service location>

    注意

    项目位置可位于非默认网站上。 发布到非默认网站时,请在该 URL 中包括网站的端口号。 例如,http://<servername>:8080/<WCF service location>

    注意

    在使用向导创建接收位置时,向导会使用默认值创建接收位置。 接收管道的默认值为 Microsoft.BizTalk.DefaultPipelines.PassThruReceive 管道。 如果通过已发布的 WCF 服务接收的消息需要任何特殊的管道处理 (例如验证、关联/属性提升或入站/出站映射) 则应使用 BizTalk Server 管理控制台将接收管道设置为 Microsoft.BizTalk.DefaultPipelines.XMLReceive 或自定义管道。

    注意

    如果在到达此页面后决定不使用 “将业务流程发布为 WCF 服务 ”选项,则在 “创建 WCF 服务 ”页上,你可能会看到 Web 服务说明 显示更改发布选项之前所选 BizTalk 程序集中的服务和方法名称。 这是因为更改发布方法时,不会清除内存中的 Web 服务说明。

  12. “WCF 服务摘要 ”页上,查看 WCF 服务的设置。

  13. 单击“ 创建 ”以创建 WCF 服务。

  14. 单击“ 完成 ”以完成 BizTalk WCF 服务发布向导。

  15. 使用 BizTalk WCF 服务发布向导发布 WCF 服务之后,必须对其进行正确配置。 有关如何配置独立 WCF 接收适配器的信息,请参阅 如何配置使用 BizTalk WCF 服务发布向导发布的 WCF 服务

另请参阅

如何配置使用 BizTalk WCF 服务发布向导发布的 WCF 服务
演练:通过 WCF-BasicHttp 适配器发布 WCF 服务
如何使用 BizTalk WCF 服务发布向导将架构发布为 WCF 服务