如何使多个BizTalk前端上部署的代码保持同步?

如何使多个BizTalk前端上部署的代码保持同步?,biztalk,biztalk-deployment,Biztalk,Biztalk Deployment,我们有多个BizTalk 2006应用程序服务器,我发现几乎不可能在这些服务器上保持项目的版本同步。部署MSI包、导入它们、在GAC中匹配文件、部署一些注册表更改是一个繁琐的过程,如果遗漏了一个步骤,或者有人将DLL的更新副本直接部署到一个服务器而不是另一个服务器,那么很难判断 其他人如何确保两台服务器之间的软件副本版本相同 一些背景: 我们的环境有两个(非群集)BizTalk前端服务器和一个单独的数据库后端。直到最近,尽管我们已经配置了两个前端,但是由于一些故障排除,第二台服务器上的主机实例

我们有多个BizTalk 2006应用程序服务器,我发现几乎不可能在这些服务器上保持项目的版本同步。部署MSI包、导入它们、在GAC中匹配文件、部署一些注册表更改是一个繁琐的过程,如果遗漏了一个步骤,或者有人将DLL的更新副本直接部署到一个服务器而不是另一个服务器,那么很难判断

其他人如何确保两台服务器之间的软件副本版本相同


一些背景:

我们的环境有两个(非群集)BizTalk前端服务器和一个单独的数据库后端。直到最近,尽管我们已经配置了两个前端,但是由于一些故障排除,第二台服务器上的主机实例被停止。它们已经被禁用了几个月,同时我们部署了一些更新的代码

今天早上,我在GAC上做了一个文件夹diff,以及为我们部署的项目(两台服务器上的C:\OurProject\上)保存DLL本地磁盘副本的文件夹,并且所有内容都匹配-相同的文件大小,相同的时间戳。然而,当我打开第二组服务时,很明显Server2使用的是旧版本的项目DLL——接下来处理的三个文件中,两个结果正常,一个显然已经过时


请帮我避免动脉瘤。

有一件事你可能想调查一下

我们目前正在使用BizTalk 2009构建一个新环境,我从一组MSBuild脚本开始,这些脚本处理从SubVersion导出源、使用BTSTask构建和部署程序集


当然,BTSTask缺少很多功能(启动/停止应用程序),但至少在BizTalk 2006中是这样的。

我们使用一个自动生成脚本,其最终目的是一个MSI,带有Dev/Stage/Prod的绑定文件。所有发布的绑定文件都存储在一个共享上,并用于手动加载BizTalk服务器。首先停止应用程序,在两台服务器上执行MSI,然后导入MSI。在导入过程中,我们为绑定指定了环境,瞧。我们没有同步丢失的问题

因此,我建议您使用所有最新的MSI,并在存在差异的服务器上重新执行它们。否则,只需尝试放置一个流程,手动创建一个可重复的加载流程