首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将应用程序更新部署到多个站点

将应用程序更新部署到多个站点
EN

Stack Overflow用户
提问于 2009-03-26 22:22:02
回答 6查看 643关注 0票数 7

我有一个由ASP.NET web应用程序、几个Windows和一个Server 2005数据库组成的应用程序。此应用程序在多个站点上进行复制,因此每个站点都有一个包含所有部分(web应用程序、服务和DB)的服务器。目前,部署更新的过程如下:

数据库

  1. 脚本数据库更改(使用Management中的)。
  2. 在Management中连接到站点的DB。
  3. 在站点的DB上运行SQL脚本。
  4. 对每个站点重复2和3。

Web应用

  1. 在Visual中使用“发布”。
  2. 从已发布的副本中删除web.config。
  3. 压缩web应用程序文件。
  4. 将压缩文件复制到站点。
  5. 远程桌面进入该网站,以解压缩文件。
  6. 必要时手动修改web.config。
  7. 对每个站点重复4-6次.

Windows服务

  1. 在Visual中构建项目。
  2. 重建二进制文件。
  3. 将压缩文件复制到站点。
  4. 远程桌面进入该站点。
  5. 停止服务。
  6. 卸载旧版本。
  7. 安装新版本。
  8. 必要时手动修改.config。
  9. 开始服务。
  10. 对每个地点重复3-9次.

目前有3个站点和部署是恼人的,但易于管理,然而,在一年之内,我们很可能会有10或11个站点,而必须以这种方式部署更新将使我自杀。

因此,我正在寻找关于如何自动化这一过程的建议。我已经开始学习将配置合并并将文件复制到我的服务器上的MSBuild,但我不知道它会走多远。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-03-26 22:28:42

使用您熟悉的任何脚本语言(看起来甚至连.bat都适用于您),并获得PsTools

然后,您可以使用psexec和psservice远程控制进程和服务。您仍然需要自己编写脚本,但您不必远程登录(例如。要解压缩和复制文件),一个服务器的工作内容将适用于10个服务器。

票数 5
EN

Stack Overflow用户

发布于 2009-03-27 00:09:02

MSBUILD几乎可以完成您所需要的一切。,但听起来您需要一些定制的任务来完成它完全自动化。但只要付出一点小小的努力,这是可能的。

MSBUILD实际上已经是您的项目的一部分。这是项目文件本身。它基本上是所有事物背后的XML。在这个XML中,会触发PreBuild和PostBuild事件,您可以进行必要的复制、粘贴命令等等。

此外,您可能对Web部署项目感兴趣,这些项目允许您为构建的每个环境拥有多个web.config文件。

对于更高级的场景,您可以创建与MSBUILD事件集成的自定义任务。您甚至可以在这些任务中使用条件。下面提到的都是关于这一点的。

有关MSBUILD的更多信息,请访问http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx

票数 2
EN

Stack Overflow用户

发布于 2010-11-02 21:34:14

对于数据库开发,请尝试使用http://www.deltasql.org/wiki

有一个中央服务器(在PHP/mySQL中,可以很容易地与XAMPP包一起安装),如果您存储您的SQL脚本。在每个模式上,您都需要添加一个表tbsynchronize,其中包含在该数据库上执行的最新脚本。然后,deltasql服务器生成一个同步脚本,其中包含该模式缺少的脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/687781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档