将ASP.NET应用程序部署到远程服务器

问题描述:

我正在寻找一种将SVN中的ASP.NET应用程序从一个服务器部署到其他远程Web服务器的解决方案。不允许FTP。应该完成除文件复制之外的其他任务。创建虚拟目录。

I am looking for a solution to deploy ASP.NET application from SVN in one server to other remote web server. FTP is not allowed. Other tasks than file copy should be done - e.g. create virtual directory.

您会使用哪些工具?远程服务器可能安装了MSBuild或NAnt,但如何将文件从SVN服务器安全地复制到Web服务器?也许SSH?有什么办法吗是否可以在文件副本上进行原子操作?我不认为连续集成服务器会帮助我。

Which tools would you use? Remote server could have MSBuild or NAnt installed but how to securely copy files from SVN server to web server? Maybe SSH? Are there any alternatives? Is it possible to have an atomic operation on file copy? I do not think that Continuous Integration servers would help me.

SVN和Web服务器都是使用Windows 2k3,IIS 6.0,.NET 2.0构建的。

Both SVN and web servers are built using Windows 2k3, IIS 6.0, .NET 2.0.

编辑

部署应该是使用SVN发布提交钩子自动使用。

deployment should be automatic using SVN post commit hook.

我使用来自sysinternals的psexec( http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx )在我的钩子脚本中远程调用svn命令。基本上,每当有人检查生产分支的东西时,它会在远程服务器上调用svn update,并将更新拉入生产。

I use psexec from sysinternals (http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx) to remotely call svn commands in my hook script. Basically, whenever anyone checks something in to the production branch, it calls svn update on the remote server and the updates get pulled into production.

这可能或可能不起作用两台服务器之间的端口打开。

This may or may not work depending on what ports are open between the two servers.