如何使用 BizTalk WCF 服务使用向导来使用 WCF 服务

BizTalk 适配器框架提供了将适配器架构和 BizTalk 类型添加到 BizTalk 项目的方法。 使用 BizTalk WCF 服务使用向导可将 WCF 发送适配器添加到 BizTalk 项目。 对于 WCF 发送适配器,必须为发送端口选择一个已有的元数据交换(MEX)终结点。 然后,需要输入用于生成架构和类型的信息。 向导完成后,使用 WCF 服务所需的架构和类型将添加到 BizTalk 项目中。

将 WCF 发送适配器的架构和类型添加到项目

  1. 在 Microsoft Visual Studio BizTalk 项目中,在解决方案资源管理器中,右键单击项目,单击“ 添加”,然后单击“ 添加生成的项”。

  2. “添加生成的项 - <项目名称> ”对话框中的 “模板 ”部分中,选择“ 使用 WCF 服务”,然后单击“ 添加”。

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

  4. “元数据源 ”页上,选择要导入的元数据的源,然后单击“ 下一步”。

    元数据源页

    若要从正在运行的服务的元数据交换终结点下载元数据文档,请选择 “元数据交换”(MEX)终结点 选项。 这样,我们就可以创建一个作为 WCF 服务客户端的发送端口。 若要使用此选项,服务终结点必须发布服务元数据才能使用 HTTP/GET 或 HTTPS/GET 请求进行检索。 服务终结点还必须允许访问元数据,这可以通过匿名用户凭据或者以用户名和密码形式的用户凭据(采用基本身份验证方案)来实现。

    注释

    使用基本身份验证方案,凭据以纯文本形式发送,并很容易被截获。 此方案也不对从服务传回的信息提供保护。 必须使用安全套接字层(SSL)来加密数据。

    要导入的任何其他元数据文档,请选择 “元数据文件”(WSDL 和 XSD) 选项以从文件系统导入元数据。

    注释

    并非所有服务都必须发布元数据。 保持禁用元数据发布可以减少服务的攻击面,并降低信息意外泄露的风险。

  5. 如果在“元数据源”页上选择了“元数据交换”(MEX)终结点选项,将显示“元数据终结点”页。 在 “元数据终结点”页上,指定提供元数据下载的正在运行的服务的 URL,该服务可以通过 WS-Metadata Exchange 或 Http-Get 进行访问。 若要从 URL 获取元数据文档,请单击“ 获取”。 如果正在运行的服务需要使用基本身份验证方案的用户凭据,请单击 “编辑 ”以打开 BizTalk WCF 服务使用向导 对话框,可在其中提供访问运行服务时要使用的用户名和密码。

    元数据终结点页

    注释

    若要下载通过 HTTP 或 HTTPS 发布的 WCF 服务的元数据,不能使用 MEX 终结点,例如 http://localhost:8087/CalculatorService/mex元数据地址 ”文本框。 对于 WCF 服务,必须使用 WSDL 元数据下载元数据,如下所示: http://localhost:8087/CalculatorServicehttp://localhost:8087/CalculatorService?wsdl

  6. 如果在“元数据源”页上选择了“元数据文件”(WSDL 和 XSD)选项,将显示“元数据终结点”页。 在 “元数据终结点 ”页上,指定要导入的元数据文件。 单击“ 添加” 以添加要导入到 “元数据文件”视图的元数据文件 。 这将打开 “添加元数据文件 ”对话框,可在其中搜索元数据文件的磁盘位置。

    “添加元数据文件 ”对话框中,选择要用于元数据的完整 WSDL 和 XSD 文件集。 可以通过在命令提示符处键入以下命令来生成这些元数据文件:

    svcutil.exe /t:metadata http://localhost/service.svc/mex

    单击“ 删除 ”以删除在 “元数据文件 ”视图中选择的元数据文件。

    元数据文件页

    注释

    SvcUtil.exe 包含在 Windows Vista 和 .NET Framework 运行时组件的 Microsoft Windows 软件开发工具包(SDK)中。

    注释

    以不安全的方式检索服务元数据时,可以篡改或欺骗服务元数据。 篡改的元数据可以将客户端重定向到恶意服务、包含泄露的安全设置或包含恶意 XML 结构。 元数据文档可能非常大,并且经常保存到文件系统。 必须确保元数据文件未被篡改。

  7. “导入 WCF 服务元数据摘要 ”页上,查看设置。 可以单击“ 返回 ”进行任何更改。 然后单击“ 导入 ”以创建用于使用 WCF 服务的 BizTalk 项目和类型。

  8. “完成 BizTalk WCF 服务使用向导” 页上,单击“ 完成”。 如果要再次运行此向导,请再次选择“ 运行此向导 ”选项,然后单击“ 完成”。

    BizTalk WCF 服务使用向导在 BizTalk 项目中创建使用 WCF 服务所需的 BizTalk 架构和类型。 BizTalk 类型(如端口类型和多部分消息类型)是在业务流程中创建的。 我们建议不要修改向导创建的编排。 相反,您可以根据需要在 BizTalk 项目中添加新的编排以满足您的目的。 BizTalk WCF 服务使用向导还会创建两个绑定文件, BizTalkServiceInstance.BindingInfo.xmlBizTalkServiceInstance_Custom.BindingInfo.xmlBizTalkServiceInstance.BindingInfo.xml 是一个 BizTalk 绑定文件,可通过开发命令行工具或向导导入,以使用标准绑定 WCF 适配器配置发送端口,例如 WCF-NetMsmq 和 WCF-WSHttp 适配器。 BizTalkServiceInstance.BindingInfo.xml 是一个 BizTalk 绑定文件,可通过开发命令行工具或向导导入,以使用 WCF-Custom 适配器配置发送端口。

    导入生成的绑定文件时,它会在操作映射格式中填充 WCF.Action 属性。 若要查看此属性的配置方式,请查看 BizTalk 管理控制台中 WCF 发送端口传输属性对话框的“常规”选项卡上的“操作”文本框。

    可以通过两种不同的方式指定 WCF.Action 属性:单一动作格式和动作映射格式。 如果在单个操作格式中设置此属性(例如,http://contoso.com/Svc/Op1),则传出消息的SOAPAction 标头始终设置为此属性中指定的值。 如果在动作映射格式中设置此属性,传出的 SOAPAction 标头由 BTS.Operation 上下文属性确定。 例如,如果此属性设置为以下 XML 格式,并且 BTS.Operation 属性设置为 Op1,则 WCF 发送适配器将使用 http://contoso.com/Svc/Op1 作为传出 SOAPAction 标头。

    <BtsActionMapping>

    <Operation Name="Op1" Action="http://contoso.com/Svc/Op1" />

    <Operation Name="Op2" Action="http://contoso.com/Svc/Op2" />

    </BtsActionMapping>

    如果传出消息来自业务流程端口,业务流程实例会动态将BTS:Operation属性设置为端口的操作名称。 如果传出消息是通过基于内容的路由进行的,则可以在管道组件中设置 BTS.Operation 属性。 BizTalk WCF 使用向导生成的端口具有与 <BtsActionMapping> 元素中 Name 属性匹配的名称的操作。 无需在通过向导生成的端口发送消息时,在业务流程中显式设置BTS.Operation属性。

另请参阅

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