2014-02-24 77 views
0

我們最近從運行IIS6的Windows 2003 Web服務器遷移到運行IIS7的Windows 2008 Web服務器。有問題的應用程序是舊網站和新網站上以.net4運行的ASP.NET網站。沒有任何代碼已經改變。。從IIS6遷移到IIS7後的.net應用程序緩存問題

但是,我注意到.aspx網頁現在在用戶使用後退按鈕時到期。在舊的Web服務器上,用戶可以使用後退按鈕去查看前一頁上的結果(知道數據可能不是最新的),現在在新的Web服務器上,他們收到「頁面過期」消息。

我看了一下網頁的Fiddler標題。在IIS6上,Fiddler中的緩存列報告「私有」,在IIS7上它是「no-cache,no-store; Expires:-1」。正如我所假設的那樣,這種差異正在導致頁面過期之前的地方。

如何設置IIS7的緩存/終止行爲以匹配用戶習慣在IIS6下運行的行爲?我一直在嘗試使用「HTTP響應頭」在IIS7 GUI和修改在web.config中的靜態內容:

<system.webServer> 
<staticContent> 
<clientCache cacheControlMode="UseExpires" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" /> 
</staticContent> 
</system.webServer> 

但沒有到目前爲止,我已經試過了,讓我改變這些過期選項。

+0

此可能的重複 - http://stackoverflow.com/questions/9775063/asp-net-browser-shows-web-page-has-expired-for-back-button-after-a-post-back – sh1rts

+0

不知道它是重複的。代碼在IIS6下按預期工作,現在在IIS7下功能不同。另一篇文章是指代碼從未像用戶想要的那樣工作的場景。 – user3348622

回答

0

我使用URL重寫模塊來更改緩存設置,因爲沒有其他方法(聲明式,編程式,web.config,HTTPModule)等似乎能夠更改緩存響應標頭。

+0

好文章,提供瞭如何使用URL重寫的清晰示例: http://blogs.msdn.com/b/benjaminperkins/archive/2012/11/02/change-or-modify-a-response-header - 值 - 使用 - 網址rewrite.aspx – user3348622

相關問題