3

如何部署 ASP.NET 应用程序?您是否使用 UNC 路径/映射驱动器将其推送到生产服务器?FTP?SFTP?SSH/SCP(通过安装的第 3 方应用程序)?还有什么?或者您是否使用源代码控制更新或其他机制从生产服务器中提取它?考虑生产服务器在 Internet 或 DMZ 中,推送需要打开不安全的防火墙端口(用于 UNC 或 FTP),不是吗?

我正在努力巩固我对 ASP.NET 的部署理念。我理想的一键式构建/部署流程将包括:MSBuild、Web 部署项目、CruiseControl.NET。但是,我仍然在为如何将这些比特实际交付到生产服务器而苦苦挣扎。

在 Windows 和 *nix 平台上花费时间之后,我对 Windows 部署故事感到沮丧,因此很好奇其他人是如何做到这一点的。

4

2 回答 2

2

我使用 Cruisecontrol.net,对此非常满意。我有一个巡航控制调用的 nant 脚本:

  1. 从我们的 staging SVN 分支获取源代码
  2. 构建它
  3. 将文件复制到每个生产服务器
  4. 在 svn 的生产分支中创建一个标签,这样我们就有了推送内容的快照。

效果很好!一年前我们以前都是手动完成的,我无法告诉你这有多好。有一个小的学习曲线和一些前期脚本编写。这可能需要几天时间,但最终您会节省更多时间。

于 2009-09-17T19:25:49.220 回答
2

这是我们发布的方式:

  • 从 Visual Studio 发布到本地文件夹
  • 删除一些不需要的文件和文件夹(例如它无缘无故创建的空 Web 参考文件夹......)
  • 压缩
  • 使用远程桌面复制到舞台服务器
  • 在站点的临时文件夹中解压缩(这会赋予文件正确的权限)
  • 将当前文件移动到备份文件夹
  • 将新文件移动到站点
  • 测试它是否可以在登台服务器上运行
  • 运行将文件复制到两个前端服务器的脚本(由托管公司设置)

(但是,我们的一个前端服务器出现了一些硬件问题,因此作为短期(?)解决方案,我们不得不借用另一台服务器作为字体端服务器,并且脚本不会将文件复制到该服务器。所以去年左右我不得不使用远程桌面登录实时服务器,手动复制文件,将当前文件移动到备份文件夹并将新文件移动到位。)

于 2009-09-17T20:01:00.717 回答