我们有多个BizTalk 2006应用服务器,我发现几乎不可能让我们的项目版本保持同步。这是一个繁琐的过程,部署MSI包,导入它们,匹配GAC中的文件,部署一些注册表更改,如果错过了一个步骤或者有人将DLL的更新副本直接部署到一个服务器而不是另一个服务器,那么就没有了简单的说法。
其他人如何确保两台服务器之间的软件副本是同一版本?
一些背景知识:
我们的环境有两个(非群集)BizTalk前端服务器和一个单独的数据库后端。直到最近,虽然我们配置了两个前端,但由于某些故障排除,主机实例在第二台服务器上停止。他们已被禁用了几个月,我们在此期间部署了一些更新的代码。
今天早上,我在GAC上创建了一个文件夹diff,以及为我们部署的项目保存DLL的本地磁盘副本的文件夹(两台服务器上的C:\ OurProject \),以及所有匹配的文件 - 相同的文件大小,相同的时间戳。但是,一旦我打开了第二组服务,很明显Server2正在使用旧版本的项目DLL--处理后续三个文件,其中两个文件的结果正常,一个显然已过时。
请帮我避免动脉瘤。
答案 0 :(得分:3)
您可能想要研究的一件事是BizTalk Deployment Framework。
我们目前正在使用BizTalk 2009构建一个新环境,我开始使用一组MSBuild脚本来处理从SubVersion导出源代码,使用BTSTask构建和部署程序集。
当然BTSTask缺乏很多功能(启动/停止应用程序),但至少对BizTalk 2006来说有BTSControl。
答案 1 :(得分:2)
我们使用自动构建脚本,其最终结尾是带有Dev / Stage / Prod绑定文件的MSI。所有已发布的绑定文件都存储在共享中,用于手动加载BizTalk服务器。首先,应用程序停止,MSI在两台服务器上执行,然后导入MSI。在导入期间,我们指定绑定的环境和瞧。我们没有失去同步的问题。
因此,我建议您使用所有最新的MSI并在存在差异的服务器上重新执行它们。否则,只需尝试设置一个流程来手动创建可重复的加载过程。