Одной из возможных проблем является то, что вы не используете операторы using
для ответов, поэтому возможно, что они держатся за HTTP-соединения в пуле.
Так, например, я предлагаю вам изменить свой обратный вызов на:
static void GetterCallback(IAsyncResult ip)
{
try
{
var req = (HttpWebRequest)ip.AsyncState;
using (var response = req.EndGetResponse(ip))
{
Console.WriteLine("In GetterCallback {0}",req.Headers["Range"]);
}
}
catch
{
Console.WriteLine("Exception Thrown");
}
}
И ранее в вашей программе, когда вы находите длину контента:
int TotalSize;
using (var response = (HttpWebResponse) req.GetResponse())
{
TotalSize = (int)response.ContentLength;
}
Когда вы внесете эти изменения, попробуйте еще раз ... это, безусловно, работает для меня.