.net - 将应用程序更新部署到多个站点

标签 .net asp.net windows deployment

我有一个应用程序,其中包含一个 ASP.NET Web 应用程序、几个 Windows 服务和一个 SQL Server 2005 数据库。此应用程序在多个站点复制,因此每个站点都有一个包含所有部分(Web 应用程序、服务和数据库)的服务器。目前部署更新的过程是这样的:

数据库

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

网络应用

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

Windows 服务

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

目前有 3 个站点,部署很烦人但可以管理,但是在一年内我们很可能会有 10 或 11 个站点,必须以这种方式部署更新会让我想自杀。

因此,我正在寻找有关如何自动执行此过程的建议。我已经开始研究学习 MSBuild 以合并配置并将文件复制到我的服务器,但我不确定它会带我走多远。谢谢。

最佳答案

采用您熟悉的任何脚本语言(看起来甚至 .bat 也适合您)并获得 PsTools

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

关于.net - 将应用程序更新部署到多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687781/

相关文章:

c++ - Private Bytes >> Working Set 是否正常?

c# - WCF 3.5 REST 端点是否异步调用关联方法?

asp.net - 在 JavaScript 中验证日期

c++ - Windows下的_stat()到底是怎么工作的

java - Windows 上的动物园管理员

c# foreach 循环写得不好

c# - 在 C# 中,如何引用 app.exe.config 中配置的端口号?

c# - 具有 1000 个值的 Silverlight 组合框

c# - 如何将 IEnumerable<object> 转换为 IEnumerable<runtime type>

c# - 外部注销后如何重定向到设置注销页面(openid Connect)Asp net core 3.1