I have a webforms application that has a download handler in an ashx file that's redirected to from an urlMapping in the web.config. This works alright, however I'd like to also support continuing downloads- which uses the Range request header. However, though the Range header is sent, it is not visible on the server.
My test request looks like this:
GET http://localhost:81/Downloads/MyFile.zip HTTP/1.1
Host: localhost:81
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Accept-Language: en-US,en;q=0.8,nl;q=0.6
Range: bytes=3-
However, when on the server I try read the Range header, I get nothing. The following code:
var request = HttpContext.Current.Request;
Debug.WriteLine("/" + request.HttpMethod + " " + request.RawUrl);
foreach (var key in headers.AllKeys)
{
Debug.WriteLine(key + ": " + context.Request.Headers[key]);
}
The output that gives me is:
/GET /Downloads/MyFile.zip
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.8,nl;q=0.6
Host: localhost:81
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Somehow, the Range header is gone and a "Content-Length: 0" header has been added.
My question is: Why is the range header being removed, how can I get it back?