部署ASP.NET应用程序:Push vs. Pull?

时间:2009-09-17 19:19:58

标签: asp.net deployment web-deployment-project

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

我正在努力巩固我的ASP.NET部署理念。我理想的一键构建/部署过程包括的部分是:MSBuild,Web部署项目,CruiseControl.NET。但是,我仍然在努力将这些位实际传送到生产服务器。

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

2 个答案:

答案 0 :(得分:2)

我使用cruisecontrol.net并且非常满意。我有一个nant脚本巡航控制电话:

  1. 从我们的暂存SVN分支获取源
  2. 构建它
  3. 将文件复制到每个生产服务器
  4. 在svn的生产分支中创建一个标签,这样我们就可以快照推送的内容。
  5. 效果很好!我们过去常常在一年前手动完成这个操作,我不能告诉你它有多好。有一个小的学习曲线和一些前期脚本编写。这可能需要几天时间,但最终会节省更多时间。

答案 1 :(得分:2)

这是我们发布的方式:

  • 从Visual Studio发布到本地文件夹
  • 删除一些不需要的文件和文件夹(例如它创建的空Web引用文件夹,没有任何明显的原因......)
  • 邮编
  • 使用远程桌面复制到舞台服务器
  • 在网站的临时文件夹中解压缩(这为文件提供了正确的权限)
  • 将当前文件移至备份文件夹
  • 将新文件移至网站
  • 测试它是否适用于登台服务器
  • 运行将文件复制到两个前端服务器的脚本(由托管公司设置)

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