3

我们有多个 BizTalk 2006 应用程序服务器,我发现几乎不可能在它们上保持我们项目的版本同步。部署 MSI 包、导入它们、匹配 GAC 中的文件、部署一些注册表更改是一个乏味的过程,如果错过了一个步骤或有人将 DLL 的更新副本直接部署到一台服务器而不是另一台服务器,则没有简单的方法来告诉。

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


一些背景:

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

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

请帮我避免动脉瘤。

4

2 回答 2

3

您可能想要研究的一件事是BizTalk 部署框架

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

当然 BTSTask 缺少很多功能(启动/停止应用程序),但至少 BizTalk 2006 有BTSControl

于 2010-04-08T20:54:16.367 回答
2

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

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

于 2010-04-09T16:06:52.570 回答