.net 在构建后安全发布网站的最佳方式是什么?

.net 在构建后安全发布网站的最佳方式是什么?,.net,windows,deployment,iis-6,.net,Windows,Deployment,Iis 6,那么,根据你的经验,最好的方法是什么?在构建自动化工具中是否有一种安全的方法可以编写脚本/触发 编辑:我应该提到这是windows/.net,我将部署到iis6,用于一些我用来推动上线的项目。它构建在ruby之上,使部署脚本编写超级简单,并使用ssh 在其他项目中,我有一个小小的部署应用程序,它使用bash将svn导出到一个临时目录,然后将其rsync传递到实时服务器。您可以让rsync使用ssh 我非常喜欢Capistrano方法,即使您的项目不是ruby/rails。您总是可以编写一个小型客

那么,根据你的经验,最好的方法是什么?在构建自动化工具中是否有一种安全的方法可以编写脚本/触发

编辑:我应该提到这是windows/.net,我将部署到iis6,用于一些我用来推动上线的项目。它构建在ruby之上,使部署脚本编写超级简单,并使用ssh

在其他项目中,我有一个小小的部署应用程序,它使用bash将svn导出到一个临时目录,然后将其rsync传递到实时服务器。您可以让rsync使用ssh


我非常喜欢Capistrano方法,即使您的项目不是ruby/rails。

您总是可以编写一个小型客户端/服务器应用程序,在源代码处加密,推送文件,然后在目标代码处解密。这是一点工作,但可能是微不足道的。只要您的自动化工具支持在文件系统中执行某些操作(我认为所有这些都支持),它就可以编写脚本


唯一的缺点是,在集成环境中出现故障时,如果您不多做一点工作,您可能无法获得有意义的错误消息(尽管根据您的设置,这可能与向stdout发送错误消息一样简单)。

hm,在这里我们使用一个暂存“服务器”为了在实时环境(实际上,它是生产服务器上的一个apache虚拟主机)和(一个真正智能的逐行文件比较工具)上进行测试,需要同步开发和登台

一旦它被测试过,就可以了;替换生产webroot上的文件:)


/mp

这似乎是使用SFTP可以轻松完成的事情。查看(psftp和pscp)或Windows,或Unix的和。

制作一份live site目录的副本,使用最新版本更新该副本,然后重命名live和更新的目录,以便更新的版本现在是live

在bash中:

#!/bin/bash

set -e
cp -R /var/livesite /var/newversion
rsync user@devserver:/var/readytogolive /var/newversion
mv /var/livesite /var/oldlivesite
mv /var/newversion /var/livesite
中提琴


编辑:@Ted Percival-这是个好主意。我甚至不知道“set-e”。更新的脚本。编辑:根据Ted的建议再次更新(尽管我认为如果cp命令失败,它仍然可以工作,如果cp失败,您可能会遇到更严重的问题。)

@Neall,我会在第二行添加一个
set-e
,因为如果
rsync
由于任何原因失败,您不希望替换活动站点
set-e
导致脚本在其任何命令失败时退出


编辑:
set-e
应该是脚本中的第一件事,就在
之后/bin/bash

我会支持您的建议,不过如果您正在寻找基于GUI的解决方案,您可以尝试前端。干净、基于ssh、合理的部署和回滚语义,以及通过ruby轻松编写脚本和扩展。

在我做的一项自由职业者工作中,我们设置了三个独立的环境

  • 一个使用CruiseControl继续构建的开发服务器。任何签入都会触发生成。QA测试在这里完成
  • 一个测试服务器,用户验收测试是在该服务器上完成的
  • 生产
工作流程如下:

  • 开发人员签入对SourceControl的更改
  • CruiseControl构建并将构建部署到开发人员
  • 德夫被问到了
  • 通过QA后,将运行一个robocopy脚本,该脚本将部署要测试的开发版本
  • 测试是经过评估的
  • 测试通过后,运行一个robocopy脚本,将测试部署到PRD