通过 MessageBox 直接绑定端口,可以将邮件直接拖放到 MessageBox 数据库中,而无需显式收件人,并订阅满足特定条件的邮件,而不是来自特定发件人的邮件。
在 MessageBox 直接绑定端口上发送消息等效于将消息发布到消息总线,在本例中,将消息发布到 MessageBox 数据库。 任何已发布消息可以有任意数量的订阅者,如果在发布消息时没有订阅者感兴趣,则会引发“找不到订阅”异常。 如果您是针对特定收件人通过 MessageBox 直接绑定端口发送消息,您可能需要在 消息分配 形状中将属性设置为特定值,以供预期订阅者查找。 可以根据 BizTalk Server 预定义的属性定义或自己的属性定义设置属性。 例如:
myMessage(PropertyNamespace.PropertyName) = "My Property")
通过 MessageBox 直接绑定端口接收消息等效于使用筛选条件订阅消息总线。 消息的接收者可以是能够订阅消息的任何类型的服务,其中包括编排流程和发送端口。 对于激活 接收 形状,订阅是消息类型和筛选器表达式,对于未激活 的接收 形状,订阅是消息类型和关联集。 每个接收形状总是将消息类型作为其订阅内容的一部分。
注释
如果在直接绑定的端口上,具有效定制订阅路由的激活 接收 形状用于接收 System.Xml.XmlDocument 或 Microsoft.XLANGs.BaseTypes.Any 类型的消息,则必须使用筛选器表达式。
如果在激活连接到 MessageBox 直接绑定端口的Receive 步骤中未指定任何筛选条件,则订阅将如下所示:
http://schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortID == {2F6A80E1-2518-4A69-9C28-401C2DB1CBF6} And
http://schemas.microsoft.com/BizTalk/2003/system-properties.MessageType == http://MyMessageType
在前面的示例中,MessageBox 的直接绑定接收端口将接收所有符合该端口操作配置的消息类型的消息。
注释
在使用 MessageBox 直接绑定接收端口时,应尽量使筛选器更加具体。 如果不使筛选器足够具体,业务流程可能会收到不需要的消息。
若要配置 MessageBox 直接绑定端口,请在端口配置向导中选择通过 Message Box 数据库中的筛选表达式定义传入消息的端口路由。
有关如何使用 MessageBox 直接绑定端口的示例,请参阅 SDK 示例“在业务流程中直接绑定到 MessageBox 数据库”。https://go.microsoft.com/fwlink/?LinkId=73703