如何将业务流程映射到 Web 服务

业务流程可以有多个接收端口。 使用 BizTalk Web 服务发布向导,选择要作为 Web 服务发布的接收端口。 该向导将为每个接收端口创建一个 Web Services(.asmx 文件)。 如果接收端口类型 (单向或请求/响应) ,向导还可以为所有接收端口创建一个 Web 服务。 操作成为函数调用。 接收端口中的每个操作将成为一个 Web 方法。 请求操作将成为输入参数。 响应操作变为返回类型。

如果请求和响应操作是相同的 Web 消息类型,则输入参数将变为 ref ,返回类型为 void。 ASP.NET Web 客户端可以通过合并相同类型的 in 参数和 out 参数更改 Web 方法签名。 例如,ASP.NET Web 客户端可能会将 BizTalk Web 方法从 字符串 myService (字符串部件) 更改为 取消 myService (ref 字符串部件)

这些操作消息类型定义 Web 方法的签名。 每个消息类型部分是 Web 方法中的一个参数。

消息类型部件名称和目标命名空间

指定 了 XmlRootAttribute 的文档架构和用户定义的类是已定义目标命名空间的消息类型部分。 EDI 架构、未指定 XmlRootAttribute 的用户定义类和内置类型(如 System.String )是未定义目标命名空间的消息类型部分。

如果消息类型部件名称具有 使用的参数名称
定义的目标命名空间 根元素名称
未定义目标命名空间 消息类型部件名称

注意

当响应消息使用多部分消息类型时,BizTalk Web 服务发布向导使用第一个消息部分作为返回值,其余消息部分用作 out 参数。

具有多个操作的业务流程

如果业务流程有多个操作,则应将业务流程设计为具有一个接收端口,而不是多个接收端口。 此设计可防止 BizTalk Web 服务发布向导创建多个 Web 服务 (.asmx) 文件,并且仅在所有操作具有相同的调用模式(所有单向操作或所有请求-响应操作)时才有效。 单个接收端口不能同时包含单向和请求/响应操作。

注意

BizTalk Web 服务发布向导显示公共接收端口。 公共接收端口是具有公共类型修饰符的端口类型。 只能将公共端口发布为 Web 服务。 默认端口类型是“内部”。

注意

如果接收端口定义为单向端口,则 Web 方法响应类型为 void ,并且不会向 Web 客户端返回任何信息。 SOAP 适配器或业务流程引发的异常不会返回到 Web 客户端。

已发布业务流程的 Web Services 命名约定

BizTalk Web 服务发布向导根据业务流程命名空间生成 Web 服务 (.asmx) 文件名,后跟下划线 () ,后跟类型名称,后跟下划线 (\) ,后跟接收端口的名称。 下划线 (_) 替换包含句点的任何部分。 Web 服务的名称始终追加端口名称。

下表显示了 BizTalk Web 服务发布向导如何生成 Web 服务名称。

使用 Web 端口 () 的业务流程 () 生成的 Web 服务名称
具有一个 Web 端口的一个业务流程 orchestration1_port1.asmx
具有两个 Web 端口的一个业务流程 orchestration1_port1.asmx 和 orchestration1_port2.asmx
两个业务流程,每个业务流程具有一个 Web 端口 orchestration1_port1.asmx 和 orchestration2_port2.asmx

另请参阅

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