使用并排版本控制更新架构
可以使用架构执行并行版本控制。 为此,请将架构的新版本添加到程序集,升级架构的版本,同时将现有架构 (及其版本) 保持不变。
如果递增架构版本,则必须更新对使用该架构的任何管道实例和管道组件的架构的引用。 还必须更新引用架构的映射 (或创建新映射) 以及依赖于架构的任何业务流程。
如果取消部署架构,则架构的早期版本(如果可用)将变为活动状态。
管道中的架构解析
如果向应用程序添加包含与 BizTalk 组中现有架构相同的消息类型的新架构的程序集,则在管道中发生架构解析时,将使用具有最新版本的架构。 如果一个消息类型引用多个 .NET 类型,则这种不明确性可能会导致管道执行失败。 原因在于架构查找使用的是消息类型、目标命名空间和实例的根名称。 对于使用与新架构相同的消息类型的架构的任何应用程序中的管道,都可能发生此类型的故障。 有关架构解析的详细信息,请参阅BizTalk Server帮助中的管道组件中的架构解析 (https://go.microsoft.com/fwlink/?LinkID=154207) 。
在将新版本的架构与旧版本并排添加后,XML 反汇编程序的架构解析行为可能需要其他更改。 在某些情况下,可能需要将管道Designer管道反汇编程序属性中的引用硬编码为特定版本的架构。 这使你能够避免动态解析行为,即 XML 反汇编程序使用运行时从消息 XML 内容动态发现的消息类型来确定要加载的架构。
更新业务流程中的架构
在业务流程中更改与多个发送和接收形状关联的架构时,可以通过将与每个发送或接收形状关联的消息的“消息类型”属性设置为“多部分消息类型”(而不是“架构”)来更轻松地进行更改。 然后,可以将与每个形状关联的消息部件的 Type 属性设置为相同的架构。 这样做后,可以通过更改每个消息部分的 Type 属性来更改架构,而不必更改每个形状的消息类型。 有关通过此过程简化更改的详细信息,请参阅) (https://go.microsoft.com/fwlink/?LinkId=101594 改进 BizTalk 编程的 8 个提示和技巧白皮书。
对架构的版本控制
BizTalk Server从包含它的程序集的最新版本获取架构。 这意味着,如果创建架构的新版本,新版本将完全替换架构的所有以前版本。 此操作在事务寿命很短时能够正常工作。 但是,业务流程管理解决方案中的事务寿命很长:订单可能需要一年时间才能完成。
为了允许使用正在使用的架构的多个版本,解决方案中的每个架构在其命名空间中都包括版本号。 BizTalk 管道根据目标命名空间和架构中定义的根节点名称确定消息的消息类型。 例如,订单架构的命名空间如下所示:
http://Microsoft.Samples.BizTalk.SouthridgeVideo.Schemas.Order.v1
由于命名空间标识架构,并且包含版本号使命名空间对架构是唯一的,因此新架构将不同于旧版本。 因此,无需取代旧架构就可以使用新架构。
更改架构版本可能会影响解决方案的许多部分,因此应提前计划。 有关架构版本更改的影响的详细信息,请参阅BizTalk Server帮助中的管道组件中的架构解析 (https://go.microsoft.com/fwlink/?LinkID=154207) 。
更改业务流程中的架构版本时,请使用多部分消息类型。 在对架构进行版本控制时,这样做将带来更大的灵活性。 有关使用多部分消息类型的优点的详细信息,请参阅 MSDN 杂志文章 8 提示和技巧,以改进 BizTalk 编程 () https://go.microsoft.com/fwlink/?LinkId=101594 。“始终使用多部分消息类型”。