部署 BizTalk 应用程序的最佳做法

本主题介绍部署 BizTalk 应用程序的最佳做法。

尽可能多地将相关项目放置在同一 BizTalk 应用程序中。 这样,就可以将项目作为单个实体进行管理和部署,从而简化管理。 可以将支持相同业务流程的项目或执行类似功能的项目分组到单个应用程序中。

在单独的应用中部署共享工件

如果项目将由两个或多个应用程序共享,请将共享项目部署到单独的应用程序中。 例如,如果两个应用程序共享架构,请将架构放置在单独的应用程序中。 这是因为只有一个具有相同本地唯一标识符(LUID)的项目(由项目名称和可选其他属性组成)可以存在于 BizTalk 组中。 如果在一个应用程序中包括项目,然后从另一个应用程序创建对它的引用,则在停止包含该项目的应用程序时,可能会遇到问题,例如引用应用程序无法正常工作。

此最佳做法适用于除文件(如自述文件和脚本)以外的所有项目类型,这些文件作为项目文件类型添加到应用程序。 这是因为可以在 BizTalk 组中部署具有相同名称的多个文件项目。 因此,可以在两个或多个应用程序中使用同名的文件。 停止一个应用程序不会影响另一个应用程序。 有关添加文件项目的详细信息,请参阅 如何向应用程序添加文件

有关共享特定项目类型的最佳做法,请参阅本节中的“在单独的应用程序中部署共享网站”、“在单独的应用程序中部署共享策略”和“在单独的应用程序中部署共享证书”。

在单独的应用程序中部署共享网站

如果网站将由多个业务解决方案共享,请在单独的应用程序中部署网站。 这是因为当您卸载 BizTalk 应用程序时,作为该应用程序一部分的任何正在运行的网站的虚拟目录也会被删除。 如果网站与其他业务解决方案共享,则其他业务解决方案将不再正常运行。

在单独的应用程序中部署共享策略

如果策略由两个或多个应用程序使用,则应将其部署到单独的应用程序中,而不是创建从一个应用程序到另一个应用程序的引用。 这是因为当停止应用程序时,其策略将被撤回。 如果停止包含另一个应用程序使用的策略的应用程序,该策略将不再在任一应用程序中运行。

在单独的应用程序中部署共享证书

如果发送端口或接收位置在两个或多个应用程序中使用证书,则应在单独的应用程序中部署证书,然后从需要使用证书的应用程序引用此应用程序。 这是因为 BizTalk 组中只能存在一个具有特定 LUID 的项目,因此无法在两个不同的应用程序中导入相同的证书。 如果尝试导入两个使用相同证书的应用程序,则第一个导入将成功,第二个应用程序将不会成功。 在这种情况下,使用“覆盖导入”选项无法解决问题,因为要覆盖的现有证书包含在另一个应用程序中。

切勿在生产计算机上从 Visual Studio 部署程序集

在开发过程中,开发人员通常必须从 Visual Studio 重新部署程序集。 若要启用重新部署,Visual Studio 可能会取消部署、取消绑定、停止和取消列出程序集中包含的项目。 尽管这在开发环境中是必需的且合适,但在生产环境中可能会导致意外和不希望的后果。 出于此原因,为了避免任何人尝试在生产计算机上从 Visual Studio 部署程序集的可能性,我们建议不要在生产计算机上安装 Visual Studio。

此外,从不引用运行 Visual Studio 的计算机的生产数据库。

部署大型 MSI 文件时,您可能需要增加 BizTalk 用于部署应用程序的 COM+ 组件的默认事务超时设置。

如果部署的 MSI 文件非常大(超过 100 MB),则应用程序可能不会在应用程序部署期间 BizTalk 使用的 COM+ 组件的默认事务超时内部署。 如果与这些 COM+ 组件关联的事务在部署完成前超时,则部署将失败。 如果要部署非常大的 MSI 文件,请考虑采用以下方法之一来缓解此问题:

  1. 部署几个较小的 MSI 文件,而不是一个大型 MSI 文件。

  2. 组件服务管理界面中增加与 Microsoft.BizTalk.ApplicationDeployment.GroupMicrosoft.BizTalk.Deployment.DeployerComponent 组件关联的默认事务超时 3000 秒。 这些组件分别属于 Microsoft.BizTalk.ApplicationDeployment.EngineMicrosoft.Biztalk.Deployment COM+ 应用程序。 有关如何更改事务超时值的详细信息,请转到 “设置事务超时”。

另请参阅

部署和管理 BizTalk 应用程序