第三方供应商为我提供了他们希望能够调用的服务的 wsdl。是否可以根据现有的服务合同和架构在 BizTalk 中公开 WCF 终结点,而无需尝试对其进行逆向工程?
问问题
5695 次
1 回答
2
这可以按如下方式完成:
从 Visual Studio 开始:
- 在要导入架构的项目上,右键单击并选择添加生成的项目
- 选择使用 WCF 服务
- 在 BizTalk 消费向导上选择
Metadata Files (WSDL and XSD)
,添加 WSDL / XSD 文件,并为工件提供名称空间。 - (不要删除 .odx 文件,因为它包含端口类型)
- 然后创建您的 Orch 来处理传入消息,该消息返回适当响应类型的响应(例如,请参阅ExposeWebService Biztalk 示例,分别使用供应商提供的请求和响应模式作为输入和输出)。使用导入的端口类型可以节省查找和分配模式以请求和响应的时间。该端口还将具有供应商期望的操作名称。
- 您需要构建项目并将其部署到 BTS。
- 然后可以使用BizTalk WCF 发布向导在本地 IIS 上发布 web 服务。如果您通过消息框使用直接绑定,那么如果您已经有 WCF 接收端口,则不需要创建新的接收端口。您可以指定虚拟目录的名称,但请注意 BizTalk 将为 .svc 生成任意名称。
- 如果您还没有用于 BizTalk WCF 接收的应用程序池,则需要使用与 BizTalk 隔离主机相同的凭据创建一个
- 将上述向导创建的虚拟目录分配给应用程序池。
- 确保 BizTalk 中的接收位置正在运行
您现在应该能够导航到发布您的 orch 的虚拟根目录、添加服务引用、测试您的 orch 等。
由于您的集成供应商已经拥有 WSDL,因此如果您不想使用 IIS,也可以完全跳过发布(步骤 7-9),而是通过使用直接在 Biztalk 中手动创建接收端口来让 BizTalk 在端口 80 上侦听WCF-自定义。您可能需要使用 netsh来允许此操作(除非您的 BizTalk 以管理员访问权限或类似权限运行,这是不可取的)。
于 2012-08-31T12:51:38.097 回答