【问题标题】:.net app caching issue after migrating from IIS6 to IIS7从 IIS6 迁移到 IIS7 后的 .net 应用程序缓存问题
【发布时间】:2014-03-26 20:30:21
【问题描述】:

我们最近从运行 IIS6 的 Windows 2003 Web 服务器迁移到运行 IIS7 的 Windows 2008 Web 服务器。有问题的应用程序是一个在 .net4 下运行的 ASP.NET 网站,无论是旧的还是新的。代码都没有改变。

但是,我注意到当用户使用后退按钮时,.aspx 网页现在会过期。在旧的网络服务器上,用户可以使用后退按钮查看前一页的结果(知道数据可能不是最新的),现在在新的网络服务器上,他们会收到“页面已过期”消息.

我使用 Fiddler 查看了网页的标题。在 IIS6 上,Fiddler 中的缓存列报告“私有”,而在 IIS7 上,它是“无缓存,无存储;过期:-1”。我假设正是这种差异导致页面在以前没有过期的地方过期。

如何设置 IIS7 的缓存/过期行为以匹配用户习惯在 IIS6 下运行的行为?我一直在尝试在 IIS7 gui 中使用“HTTP 响应标头”以及修改 web.config 中的静态内容:

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

但到目前为止,我没有尝试过更改这些到期选项。

【问题讨论】:

  • 不确定它是否与此重复。代码在 IIS6 下按预期工作,现在在 IIS7 下运行不同。另一篇文章提到了代码从未按照用户想要的方式运行的场景。

标签: asp.net .net caching iis-7


【解决方案1】:

我使用 URL 重写模块来更改缓存设置,因为似乎没有其他方法(声明式、编程式、web.config、HTTPModule)等能够更改缓存响应标头。

【讨论】:

猜你喜欢
  • 2011-11-11
  • 2011-08-22
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多