views:

237

answers:

2

I'm trying to use IIS7 to host a HTTP Live Streaming server.

For those not familiar with HTTPLS: an audio or video stream is broken into small segments and made available on a web server. Along with the segments an index.m3u8 file is created which is a flat text file that lists segments currently available for download in the order in which they should be played. Typically, a new segment is created every 5 or 10 seconds and the index.m3u8 is overwritten at that time.

So I have a service running in Windows Server 2008 that is writing its segments and index.m3u8 files into a directory hosted by IIS. My client software connects and has no problem playing audio most of the time.

The problem: The client will sometimes receive an old index file over and over for hours on end despite the fact that new audio segments are being created.

I have two possible explanations:

  1. The service creating the segments is not succeeding in overwriting the index.m3u8 for prolonged periods of time.
  2. IIS7 has an internal file system cache that it reading from to fulfill the web requests.

So my question: does IIS have such a cache and if so what settings do I make to disable it?

Edit: I forgot to mention the IIS logs for these requests show http code 200 request OK.

A: 

Caching can be happening on many fronts - IIS, Proxy server, FireWall and browser.

Oded
Well, there is no proxy or firewall caching going on an I'm not using a browser.Do you think that the type of caching I'm describing can happen on the IIS server? I added in an edit an important detail I forgot to mention initially: the requests in question are showing a http status of 200.
awolf
A: 

It can happen on IIS, if you have caching turned on for those file types, but in that scenario you should be getting a 304, not modified, not a 200. I wouldn't think IIS would cache things like that by default, but you can check. Follow this KB article for details on disabling caching for specific mime types.

jvenema