我们最近从运行IIS6的Windows 2003 Web服务器迁移到运行IIS7的Windows 2008 Web服务器。有问题的应用程序是在旧网站和新网站上运行.net4的ASP.NET网站。这些代码都没有改变。
但是,我注意到.aspx网页现在在用户使用后退按钮时过期。在旧的Web服务器上,用户可以使用后退按钮去查看上一页的结果(知道数据可能不是最新的),现在在新的Web服务器上,他们得到一个"页面过期"消息。
我看了一下Fiddler的网页标题。在IIS6上,Fiddler中的缓存列报告"私有"在IIS7上它是" no-cache,no-store;过期:-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 :(得分:0)
我使用URL Rewrite模块来更改缓存设置,因为没有其他方法(声明式,编程式,web.config,HTTPModule)等似乎能够更改缓存响应头。