views:

290

answers:

2

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.

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.

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

Edit

deployment should be automatic using SVN post commit hook.

+2  A: 

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.

pjabbott
+1 very slick; I'm going to have to bookmark that.
T. Stone
It is strange that only one tool suggested. Thanks anyway, I will try it!
Sazug
A: 

But maybe a continuous integration server might help? Here are some ideas:

For example, I'm using CruiseControl.NET to automatically build our solutions after every commit. Maybe you could use this on your web server to retrieve the latest version from the SVN repository after every commit.

If it is required that the access to the SVN repository is secure, then maybe you could use VisualSVN server on the repository server and then access the repository using https.

(lots of maybe's, but maybe ;-) there's something that can help you)

M4N
But if there are 10 web servers? I do not think 10 CC.NET instances are good solutions.
Sazug