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

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

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

操作消息类型定义了Web方法签名。 每个消息类型部件都是 Web 方法中的参数。

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

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

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

注释

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

具有多个操作的编排

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

注释

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

注释

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

已发布编排的 Web 服务命名约定

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 服务