You actually didn't really need to create a WebService to perform an action to just let the client download the file. What you would do, is to create a hyperlink for the file link (generally to the page) from where the user would download the file.
Now once the user has reached that page, you can push the data inside that file to the user.
Layout = null;
var file = Server.MapPath("~/files/" + Request["FileName"]);
Response.AppendHeader("content-disposition", "attachment; filename=" + Request["img"]);
Response.ContentType = "application/octet-stream";
This would transmit the file from the server to the client. No need for any WebService or any other complex framework.