更新应用程序的最佳做法

本主题介绍更新 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 数据库,并停止和取消登记任何正在运行的实例。 若要停止和取消登记正在运行的实例,必须手动恢复并完成或终止所有已解除冻结或挂起的实例。

  • 尽管不需要为了更新项目或安装应用程序而停止应用程序,但我们建议在更新项目时始终停止应用程序。

另请参阅

如何将绑定导出到绑定文件