Hi Bobby
My issue is the latter one, WMP tries to download the whole video instead of requesting a new byte range.
However, I did figure out why this is. If you look at the http headers returned by IIS7 when you request a media file directly, one of them is "Accept-Ranges: bytes". This tells the client (WMP in this case) that the server accepts requests specifing specific byte ranges. (http://www.freesoft.org/CIE/RFC/2068/160.htm).
When you request a Web Playlist, this header is not returned by the server and therefore WMP does not even try to request a byte range.
To verify that this was the case and to create a workaround, I created a simple IIS Module, which injects the "Accept-Ranges: bytes" header when serving .isx files. Im not sure where in the request pipeline this best fits in, but I put it in the PostRequestHandlerExecute event.
Here is my code (sorry for the bad formatting):
public class WebPlaylistsFixModule : IHttpModule
{
public void Dispose() {}
public void Init(HttpApplication context)
{
context.PostRequestHandlerExecute += new EventHandler(context_PostRequestHandlerExecute);
}
void context_PostRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
HttpRequest request = app.Context.Request;
if (request.Path.IndexOf(".isx") > -1)
{
app.Response.Headers.Add("Accept-Ranges", "bytes");
}
}
}
-Einar