如何利用 BizTalk WCF 服务使用向导来使用 WCF 服务
BizTalk 适配器框架提供了一条将适配器架构和 BizTalk 类型添加到 BizTalk 项目的途径。 通过 BizTalk WCF 服务使用向导,可以将 WCF 发送适配器添加到 BizTalk 项目。 对于 WCF 发送适配器,必须为发送端口选择现有的元数据交换 (MEX) 终结点。 然后,您需要输入用于生成架构和类型的信息。 在向导完成后,使用 WCF 服务所需的架构和类型便会添加到 BizTalk 项目中。
将 WCF 发送适配器的架构和类型添加到您的项目
在 Microsoft Visual Studio BizTalk 项目的解决方案资源管理器中,右键单击项目,单击“添加”,然后单击“添加生成的项”。
在 “添加生成的项 - <项目名称> ”对话框中的“ 模板 ”部分,选择“ 使用 WCF 服务”,然后单击“ 添加”。
在 “欢迎使用 BizTalk WCF 服务使用向导” 页上,单击“ 下一步”。
在 “元数据源 ”页上,选择要导入的元数据的源,然后单击“ 下一步”。
若要从正在运行的服务的元数据交换终结点下载元数据文档,请选择“ 元数据交换 (MEX) 终结点 ”选项。 这样可以创建一个发送端口来充当 WCF 服务的客户端。 若要使用此选项,服务终结点必须使用 HTTP/GET 或 HTTPS/GET 请求发布服务元数据以供检索。 服务终结点还必须允许使用匿名用户凭据或用户凭据(对于基本身份验证方案,其形式为用户名和密码)访问元数据。
注意
对于基本身份验证方案,凭据以明文方式发送,因此很容易被截获。 而且,该方案也没有为从服务传回的信息提供任何保护。 您必须使用安全套接字层 (SSL) 加密您的数据。
对于要导入的任何其他元数据文档,请选择“ 元数据文件 (WSDL 和 XSD) ”选项以从文件系统导入元数据。
注意
并非所有服务都必须发布元数据。 禁用元数据发布可以缩小服务的攻击面,同时降低意外泄漏信息的风险。
如果在“元数据源”页上选择了“元数据交换 (MEX) 终结点”选项,则将显示“元数据终结点”页。 在 “元数据终结点 ”页上,指定正在运行的服务的 URL,该服务提供通过 WS-Metadata Exchange 或 Http-Get 下载的元数据。 若要从 URL 获取元数据文档,请单击“ 获取”。 如果正在运行的服务需要具有基本身份验证方案的用户凭据,请单击“ 编辑 ”以打开 BizTalk WCF 服务使用向导 对话框,可在其中提供访问运行服务时要使用的用户名和密码。
注意
若要下载通过 HTTP 或 HTTPS 发布的 WCF 服务的元数据,不能将 MEX 终结点(如
http://localhost:8087/CalculatorService/mex
)用于 “元数据地址 ”文本框。 对于 WCF 服务,必须使用 WSDL 元数据下载元数据,如下所示:http://localhost:8087/CalculatorService
或http://localhost:8087/CalculatorService?wsdl
如果在“元数据源”页上选择了“元数据文件 (WSDL 和 XSD) ”选项,则会显示“元数据终结点”页。 在 “元数据终结点 ”页上,指定要导入的元数据文件。 单击“ 添加 ”,将要导入的元数据文件添加到 “元数据文件” 视图。 这将打开 “添加元数据文件 ”对话框,你可以在其中搜索元数据文件的磁盘位置。
在 “添加元数据文件 ”对话框中,选择要用于元数据的完整 WSDL 和 XSD 文件集。 可以通过在命令提示符下键入以下命令来生成这些元数据文件:
svcutil.exe /t:metadata http://localhost/service.svc/mex
单击“ 删除 ”以删除在“元数据文件”视图中选择的 元数据文件 。
注意
SvcUtil.exe 包含在 Windows Vista 和 .NET Framework 运行时组件的 Microsoft Windows 软件开发工具包 (SDK) 中。
注意
当以不安全方式检索服务元数据时,元数据可能会被篡改或伪造。 篡改的元数据可能会将您的客户端重定向至包含泄漏的安全设置或包含恶意 XML 结构的恶意服务。 元数据文档可能非常大并经常保存到文件系统。 您必须确保元数据文件未被篡改。
在 “导入 WCF 服务元数据摘要 ”页上,查看设置。 可以单击“ 返回 ”进行任何更改。 然后单击“ 导入 ”,创建用于使用 WCF 服务的 BizTalk 项目和类型。
在 “完成 BizTalk WCF 服务使用向导” 页上,单击“ 完成”。 如果要再次运行此向导,请选择“ 再次运行此向导 ”选项,然后单击“ 完成”。
BizTalk WCF 服务使用向导在您的 BizTalk 项目中创建使用 WCF 服务所需的 BizTalk 架构和类型。 在业务流程中创建诸如端口类型和多部分消息类型这样的 BizTalk 类型。 我们建议您不要修改向导创建的业务流程。 但是,您可以根据自己的需要在 BizTalk 项目中添加新的业务流程。 BizTalk WCF 服务使用向导还会创建两个绑定文件, BizTalkServiceInstance.BindingInfo.xml 和 BizTalkServiceInstance_Custom.BindingInfo.xml。 BizTalkServiceInstance.BindingInfo.xml 是一个 BizTalk 绑定文件,可通过开发命令行工具或向导导入该文件,以使用标准绑定 WCF 适配器(例如,WCF-NetMsmq 和 WCF-WSHttp 适配器)配置发送端口。 BizTalkServiceInstance.BindingInfo.xml 是一个 BizTalk 绑定文件,可通过开发命令行工具或向导导入该文件,以使用 WCF-Custom 适配器配置发送端口。
导入生成的绑定文件时,它将填充 WCF。操作 映射格式中的操作属性。 若要查看此属性的配置方式,请查看 BizTalk 管理控制台中 WCF 发送端口传输属性对话框中的“常规”选项卡上的“操作”文本框。
可以指定 WCF。操作 属性采用两种不同的方式:单个操作格式和操作映射格式。 如果以单一操作格式(例如)设置此属性,
http://contoso.com/Svc/Op1
则传出消息的 SOAPAction 标头始终设置为此属性中指定的值。 如果以操作映射格式设置此属性,则传出 SOAPAction 标头由 BTS 确定。操作 上下文属性。 例如,如果此属性设置为以下 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。 管道组件中的操作属性。 BizTalk WCF 使用向导生成的端口具有与 BtsActionMapping> 元素中的<Name 属性匹配的名称的操作。 无需显式设置 BTS。 通过向导生成的端口发送消息时,业务流程中的操作属性。
另请参阅
如何使用 BizTalk WCF 服务发布向导将业务流程发布为 WCF 服务
如何使用 BizTalk WCF 服务发布向导将架构发布为 WCF 服务