2009-12-08 67 views
2

我试图使用IIS7来承载HTTP Live Streaming服务器。IIS 7返回不断变化的文件的旧版本

对于那些不熟悉HTTPLS的人来说:音频或视频流被分成小段并在网络服务器上可用。除了段之外,还创建了一个index.m3u8文件,该文件是一个扁平的文本文件,它按照应该播放的顺序列出当前可供下载的段。通常,每5或10秒创建一个新段,并且index.m3u8在此时被覆盖。

因此,我有一个服务在Windows Server 2008中运行,它正在将其段和index.m3u8文件写入由IIS托管的目录中。我的客户端软件连接并且在大多数时间播放音频没有任何问题。

问题:尽管新音频段正在创建,但客户端有时会一遍又一遍地接收旧索引文件。

我有两个可能的解释:

  1. 创建段的服务是 在覆盖 index.m3u8为 长时间没有成功。
  2. IIS7有一个内部文件系统 缓存,它从中读取以完成Web请求。

所以我的问题: IIS确实有这样的缓存,如果是这样的设置是什么我做禁用它?

编辑:我忘了提及这些请求的IIS日志显示http代码请求确定。

+0

它如何请求索引文件?它在浏览器中吗?如果是这样,什么浏览器? – jvenema 2009-12-08 20:02:26

+0

用C++编写的自定义http客户端。下面是请求头: GET /e1/1000/index.m3u8 HTTP/1.1 主机:[绝密] 接受:*/* 的Accept-Encoding:* 接受语言:EN-US 的User-Agent :Mozilla/4.0 缓存控制:无缓存 连接:关闭 – awolf 2009-12-09 00:51:00

回答

0

可以发生在IIS上,如果你有缓存为这些文件类型打开,但在这种情况下,你应该得到一个304,没有修改,而不是200.我不认为IIS会缓存的东西像这样默认,但你可以检查。请按照this KB article了解有关禁用特定MIME类型的缓存的详细信息。

1

缓存可以发生在许多方面 - IIS,代理服务器,FireWall和浏览器。

+0

嗯,没有代理或防火墙缓存进行我没有使用浏览器。 您是否认为我描述的缓存类型可能发生在IIS服务器上?我在编辑中添加了一个我最初忘记提及的重要细节:有问题的请求显示http状态为200。 – awolf 2009-12-08 20:02:04

相关问题