更新应用程序的最佳做法
本主题介绍更新 BizTalk 应用程序和项目时应考虑使用的最佳做法。
版本控制
实施版本控制策略
如果使用长时间运行的事务,或者无法关闭 BizTalk 应用程序来执行升级或 bug 修复,则良好的版本控制策略至关重要。 应规划所有 BizTalk 项目的版本控制策略:架构、映射、自定义适配器、管道、管道组件、业务流程、业务规则、BAM 以及业务流程和映射中调用的自定义类。
将 BizTalk 管理数据库中的程序集与全局程序集缓存 (GAC) 匹配
确保 BizTalk 管理数据库中的程序集版本与 GAC 中的版本相同,以便应用程序正常运行。 如果部署程序集时并不总是将其安装到 GAC 中,GAC 和 BizTalk 管理数据库中的程序集版本可能有所不同,从而导致运行时出现处理错误。
使用 BizTalk 程序集检查器和远程 GAC 工具验证版本控制
BizTalk 程序集检查器和远程 GAC 工具 (BTSAssemblyChecker.exe) 检查部署到 BizTalk 管理数据库的程序集版本,并验证它们是否已在所有BizTalk Server计算机上的 GAC 中正确注册。 可以使用此工具验证包含特定 BizTalk 应用程序项目的所有程序集是否已安装在所有 BizTalk 节点上。 该工具与可靠的版本控制策略结合使用时特别有用,用于验证是否在每个 BizTalk 计算机上安装了一组程序集的正确版本,尤其是在使用并行部署方法时。
该工具可用于 Support\Tools\x86\BTSAssemblyChecker.exe BizTalk Server 安装介质。
使用版本控制产品
应使用版本控制产品(例如 Microsoft Visual Studio® Team Foundation Server 2010)跟踪 BizTalk 项目并为其设置版本控制。 有关 Microsoft Visual Studio® Team Foundation Server 2010 的详细信息,请参阅 Microsoft Visual Studio® Team Foundation Server 2010 (https://go.microsoft.com/fwlink/?LinkId=210637)
将项目分解为多个 BizTalk 应用程序
若要对 BizTalk 项目执行程序集版本控制,需要对 BizTalk 解决方案程序集进行 (打包) 进行考虑,以便能够进行BizTalk Server版本控制。 有关分解的详细信息,请参阅 将项目添加到应用程序。
更新应用程序
使用 .msi 文件更新应用程序
升级应用程序通常是在生产中有意且精确的操作。 升级应用程序时,通常应使用手动清单。 但是,可以使用 .msi 文件来简化某些步骤。 使用 .msi 文件时,可以将应用程序项目包装到可分发的包中。 将更新的 DLL 部署到多个运行时框或执行组级部署时,.msi 文件特别有用。 创建 .msi 文件时,应从包中排除所有其他未更改的资源和绑定。
如果更新 BizTalk 程序集,则应在导入和安装 .msi 文件之前和之后停止、取消登记、重新登记,然后手动启动 BizTalk 项目。 有关更新 BizTalk 程序集的详细信息,请参阅 清单:更新程序集。
如果使用并行版本控制升级BizTalk Server程序集,则必须在使用 .msi 文件之前和之后执行手动步骤。 有关所需手动步骤的详细信息,请参阅 清单:使用并行版本控制更新应用程序。
更新程序集
递增生产环境中的程序集版本
如果要更新生产环境中运行的程序集,应始终递增程序集版本号。
使用更新的程序集更新 GAC
更新包含业务流程、架构或映射的程序集时,必须使用包含新版本的程序集更新 GAC。 否则,BizTalk Server将使用过时的版本。 要执行此操作,请在运行应用程序绑定到的主机的实例的每台计算机上,从 GAC 卸载包含更新项目的程序集的过期版本,并确保安装新版本。
更新程序集后重启主机实例
如果更新了现有应用程序中的 BizTalk 程序集,则可能需要重启主机实例才能使更改生效。 重启主机实例会停止在主机实例上运行的所有其他应用程序。
更新项目
在它所依赖的项目之前取消部署依赖项目
如果要取消部署另一个项目所依赖的项目,必须先取消部署依赖项目。
注意
如果不先取消部署依赖项目,BizTalk Server管理控制台将显示一条警告,并阻止你以错误的顺序取消部署项目。
不要停止另一个应用程序所依赖的项目
如果您停止一个应用程序中另一个应用程序所依赖的项目(这可能导致停止整个应用程序),则依赖的应用程序将无法正常工作。 有关停止应用程序的详细信息,请参阅 如何启动和停止 BizTalk 应用程序 (https://go.microsoft.com/fwlink/?LinkID=154729) 。
在移动项目之前添加对程序集的引用
将项目移向新应用程序时,该项目所依赖的其他所有项目也会被移动,除非此新应用程序有对包含移动项目所依赖项目的应用程序的引用。 同样,依赖于移动项目的所有项目也会被移动,除非包含这些项目的应用程序有对新应用程序的引用。 移动项目时,会显示也将移动的其他项目的列表。
更新绑定
自动重新配置绑定
- 在更新应用程序中的一个程序集时,通常会覆盖该程序集的绑定,也有可能该程序集根本未绑定,所以您不得不手动重新配置绑定。 可以使用绑定文件自动执行此过程。 如果要更新程序集的相同版本,可以先导出程序集的绑定文件,然后更新程序集,然后将程序集导入应用程序,然后通过导入绑定文件重新应用以前的绑定。 如果要使用较新版本更新程序集,则可以导出绑定文件,编辑文件以反映新的程序集版本,将新程序集导入应用程序,然后通过导入绑定文件来应用新绑定。 有关绑定文件的详细信息,请参阅 如何将绑定导出到绑定文件。 有关编辑绑定文件的详细信息,请参阅 自定义绑定文件 (https://go.microsoft.com/fwlink/?LinkID=155000) 。
启动或停止应用程序
停止应用程序以更新项目
如果不停止应用程序以更新应用程序中的项目,则需要通过禁用终结点暂时停止发布到 MessageBox 数据库,并停止和取消登记任何正在运行的实例。 若要停止和取消登记正在运行的实例,必须手动恢复并完成或终止所有已解除冻结或挂起的实例。
尽管不需要为了更新项目或安装应用程序而停止应用程序,但我们建议在更新项目时始终停止应用程序。