2009-12-08 50 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