You could give a string as parameter to the path of the file when calling a webservice method (eg. DownloadFile("C:\\blah.exe") ).. That method just reads the file you specified into a byte[] and returns that. Then it would be the best to write a client which you run, and which allows you to specify the path and write the byte[] to a file so you actually saved the file. Ofcourse, if you do it exactly like this, you can download like everything, but I think thats another question ;).