views:

34

answers:

1

Dear All,

I have a web application in asp.net and C# that must access a remote server to copy some files. The web application basically deploys other web applications.

Let us say that the web app runs on a "developement" server and needs to interact with a "production" server. From the user's point of view they are both remote machines. He accesses the application (running on the "developement" machine) on his browser and does not see the code and the access credentials to the "production" machine.

At some point, it needs to copy .ascx, .aspx, .cs files from the developement to the production machine. I hope this is clear ^_^

Can anyone tell me what is the best way to do the file transfer?

Thanks!!!

Sep

A: 

If the machines are on the same network, a simple File.Copy using UNC paths (\\myserver\sharename\folder\file.ext) will do the trick.

If they are further apart, you could use FTP (FtpWebRequest on MSDN) to send files to a remote FTP server (assuming there is one) - or host an FTP server on your development machine (IIS can do that) and have the production machine download from it; regular HTTP would work in that instance too.

Finally if there are firewalls and god-knows-what-else in the way, you could write a web service/request handler on your deployment server that will serve files to the remote machine, which downloads them.

Unless you have LAN/UNC network access to the remote machine, there will almost certainly need to be a component installed on the remote machine to facilitate the copy.

To set up the application (copying files won't necessarily do it; you might need configuration too) you can use WMI, to script IIS actions - or you can use the System.Management classes to do this straight from .NET:

http://learn.iis.net/page.aspx/163/managing-applications-and-application-pools-on-iis-70-with-wmi/

Hope that helps, or at least gives some food for thought..

Kieren Johnstone
thanks!!! I am going to try it!!!
Giuseppe