【问题标题】:IIS 7 returning an old version of a constantly changing fileIIS 7 返回一个不断变化的文件的旧版本
【发布时间】:2010-12-24 13:18:51
【问题描述】:

我正在尝试使用 IIS7 来托管 HTTP Live Streaming 服务器。

对于那些不熟悉 HTTPLS 的人:音频或视频流被分成小段并在网络服务器上提供。与片段一起创建一个 index.m3u8 文件,它是一个纯文本文件,按播放顺序列出当前可供下载的片段。通常,每 5 或 10 秒创建一个新段,此时 index.m3u8 会被覆盖。

所以我有一个在 Windows Server 2008 中运行的服务,它将其段和 index.m3u8 文件写入 IIS 托管的目录中。我的客户端软件已连接并且大部分时间播放音频都没有问题。

问题:尽管正在创建新的音频片段,但客户端有时会连续数小时反复收到旧的索引文件。

我有两种可能的解释:

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

所以我的问题是: IIS 是否有这样的缓存,如果有,我应该进行哪些设置来禁用它?

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

【问题讨论】:

  • 如何请求索引文件?它在浏览器中吗?如果有,是什么浏览器?
  • 用 C++ 编写的自定义 http 客户端。以下是请求标头: GET /e1/1000/index.m3u8 HTTP/1.1 主机:[编辑] 接受:/ 接受编码:* 接受语言:en-us 用户代理:Mozilla /4.0 缓存控制:无缓存连接:关闭

标签: asp.net http iis iis-7 caching


【解决方案1】:

缓存可以在许多方面发生 - IIS、代理服务器、防火墙和浏览器。

【讨论】:

  • 好吧,我没有使用浏览器,所以没有代理或防火墙缓存。您认为我所描述的缓存类型会发生在 IIS 服务器上吗?我在编辑中添加了一个我最初忘记提及的重要细节:有问题的请求显示的 http 状态为 200。
【解决方案2】:

可以发生在 IIS 上,如果您为这些文件类型打开了缓存,但在这种情况下,您应该得到 304,而不是修改,而不是 200。我不认为默认情况下,IIS 会缓存类似的内容,但您可以检查一下。关注this KB article,了解有关禁用特定 mime 类型缓存的详细信息。

【讨论】:

  • @jvenma microsoft url return: '此页面不存在。'
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2015-03-22
相关资源
最近更新 更多