2016-05-10 52 views
0

當我執行回滾到先前的構建時,我的客戶端似乎遇到了一些問題,其中一些文件仍滯留在瀏覽器緩存中。事件的順序是:回滾C#MVC應用程序導致緩存問題

  • 部署與構建「B」有在2016年1月2日
  • 最後修改同一個.html文件作出.html文件
  • 部署一個瀏覽器請求年長打造「A」有在2016年1月1日
  • 最後修改作出同樣的.html文件

瀏覽器請求。在事件順序的末尾相同.html文件,客戶兄弟wser將發出一個請求,其頭部If-Modified-Since:1/2/2010將得到一個響應304 Not Modified,並且會得到錯誤的文件版本!

這是正確的還是我們正在看另一個問題的紅色鯡魚?

回答

2

這是正確的行爲。這是有道理的,這就是你所看到的。您可以修改IIS以立即過期。請參閱以下鏈接。

https://technet.microsoft.com/en-us/library/cc770661(v=ws.10).aspx

如果這是在Azure中託管,你可以去工具 - >命令(在蔚藍的門戶網站),然後打開命令提示符。然後運行touch <filename>。這將更新時間戳並使緩存無效。

+0

感謝克里斯的迴應!對我來說,改變這種行爲的最佳方式是回滾沒有這個問題?我想我需要從我的回覆中刪除最後修改的標題,以便它完全依賴Etag發送304條消息。那是對的嗎? 我有一個系統會自動回滾構建在某些情況下,所以不能有任何手動干預(這是今天的解決方案) – Valchris

+0

你可以單獨使用Etags,或者你可以編寫一個列舉每個文件的powershell腳本在目錄中並在回滾時運行「touch」命令。 –

+0

當我刪除Last-Modified標頭時,我注意到瀏覽器請求仍然發送了If-None-Match標頭,並且服務器響應了匹配的ETag值,但是響應爲200,而不是304!是什麼賦予了? – Valchris

相關問題