管道在解决方案生成和部署过程中进行编译和部署。 编译器在每个组件上调用 Validate 方法,使组件能够返回配置信息的编译错误。 构建完成后,管道将与解决方案的其他部分一起在同一程序集中部署,当部署解决方案时一并部署。
每实例的管道配置
每个实例管道配置用于在发送端口或接收位置级别修改已部署管道中管道组件的属性。 实例级管道配置在仅需对每个实例修改几个管道组件属性时非常有用。 例如,如果需要支持多个接收位置中的不同消息类型并具有单个自定义 XML 接收管道,则每个实例管道配置使你能够部署管道并重写默认配置(包括指定不同的信封和文档规范名称)。 BizTalk 管理控制台支持此机制,并通过 Explorer 对象模型以编程方式实现支持。
使用 BizTalk 管理控制台 Per-Instance 管道配置
可以使用 BizTalk 管理控制台执行每个实例管道配置。 部署自定义管道后,创建任意数量的接收位置或根据需要发送端口。 然后,对于每个接收位置或发送端口,请通过“配置管道”对话框替代默认属性值。 例如,若要指定不同的文档架构,请输入 EnvelopeDocSpecNames 属性的架构名称。
警告
不会验证在接收位置或发送端口中指定的配置值。 在运行时,若配置不正确,消息将无法通过管道。
Per-Instance 使用 Explorer 对象模型进行管道配置
读取描述管道组件每个实例配置的 XML 文件时,它将替代管道文件中设置的属性。
使用 BizTalk Explorer 对象模型设置每个实例管道配置。 BizTalk 资源管理器对象模型在 IReceiveLocation 和 ISendPort 接口上提供 ReceivePipelineData 属性,用于设置接收管道组件的配置。 BizTalk 资源管理器对象模型还提供 IReceivePort 和 ISendPort 接口上的 SendPipelineData 方法,用于设置发送管道组件的配置。
每个实例的管道配置不支持以下内容:
重新排列流程中的阶段
添加或删除阶段
分阶段重新排列组件
添加或删除组件
唯一支持的更改是在管道组件的配置中。 管道组件的按实例配置会替代常见的管道组件配置。 如果未在每个实例管道配置中指定组件的参数,则使用该参数的通用配置(如管道设计器中配置)。
下面是每个实例配置数据的示例。
<?xml version="1.0" encoding="utf-16"?>
<Root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Stages>
<Stage CategoryId="9d0e4103-4cce-4536-83fa-4a5040674ad6">
<Components>
<Component Name=Microsoft Microsoft.BizTalk.Component.MIME_SMIME_Decoder>
<Properties>
<AllowNonMIMEMessage vt=11>true</AllowNonMIMEMessage>
</Properties>
</Component>
</Components>
</Stage>
<Stage CategoryId="9d0e4105-4cce-4536-83fa-4a5040674ad6">
<Components>
<Component Name=Microsoft.BizTalk.Component.XmlDasmComp>
<Properties>
<EnvelopeSpecNames vt=8>MySchemas.EnvelopeSpecNames</EnvelopeSpecNames>
<AllowUnrecognizedMessage vt=11>false</AllowUnrecognizedMessage>
</Properties>
</Component>
</Components>
</Stage>
<Stage CategoryId="9d0e410d-4cce-4536-83fa-4a5040674ad6" ExecutionSequence="2">
<Components>
<Component Name=Microsoft.BizTalk.Component.XmlValidator >
<Properties>
<DocumentSpecName vt=8>MySchemas.DocspecName</DocumentSpecName>
</Properties>
</Component>
</Components>
</Stage>
</Stages>
</Root>