2012-02-29 92 views
2

我的公司使用ASHX文件爲某些動態圖像提供服務。因爲內容類型是image/jpeg,IIS會發送標題以適應靜態圖像。如何防止IIS使用ASHX文件發送緩存標頭

根據設置(我不知道所有涉及的設置,因此這個問題)的標題可以是任何的:

上次更改時間,ETag的,過期

導致瀏覽器把它們作爲可緩存的,這會導致用戶看到陳舊的圖像時出現各種錯誤。

是否有一個設置,我可以設置某個地方,使ASHX文件的行爲方式與其他動態頁面一樣,如ASPX文件?簡而言之,是否有一個設置可以讓我全部刪除LastModified,Etag,Expires等,並添加一個無緩存頭部?

回答

2

只有我找到了解決辦法是:

1)添加Response.ContentControl = 「無緩存」,以每個處理器。

我不喜歡這樣,因爲這需要所有的處理程序進行更改,並讓所有開發人員知道它。

2),其中處理器住

,因爲它需要處理程序在自己的目錄,我不喜歡這一個文件夾設置HTTP頭覆蓋。雖然這可能是一個很好的做法,但不幸的是,我們的應用程序不是以這種方式構建的,我不能僅僅移動它們,因爲它會打破面向客戶端的鏈接。

如果沒有人提供更好的答案,我將不得不接受這些是唯一的兩個選擇。

+0

嗨Kir,我面臨同樣的問題。從哪裏需要添加Response.ContentControl =「no-cache」,它會影響我的應用程序嗎?請回復.... – 2014-11-10 07:34:31

2

將隨機生成的字符串添加到請求查詢中。這會誘使瀏覽器認爲它是一個不同的調用。例如:document.getElementById(「myimgcontl」)。src =「myimages.ashx?15923763」;.