You can enable HTTP in the web.config of your web service.
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
Then you can simply use the web client to download the file (tested by a text file):
string fileName = "bar.txt"
string url = "http://localhost/Foo.asmx/GetFile?filename="+fileName;
using(WebClient wc = new WebClient())
wc.DownloadFile(url, @"C:\bar.txt");
Edit:
cookie, WebClient , GetWebRequest(), :
public class CookieMonsterWebClient : WebClient
{
public CookieContainer Cookies { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.CookieContainer = Cookies;
return request;
}
}
-, :
myCookieContainer = ...
using(CookieMonsterWebClient wc = new CookieMonsterWebClient())
{
wc.Cookies = myCookieContainer;
wc.DownloadFile(url, @"C:\bar.txt");
}