我们在 Windows Server 2008 R2 机器上的 IIS 7.5 上托管了 asp.net 4.0 网站。问题是客户端正在获取旧内容,但服务器已更新副本。客户端需要每次按 Ctrl+F5 才能获取最新内容。即使在网格上更新数据的情况下,客户端仍然会获得 IFRAME 中显示的旧数据。
可能是什么原因??任何的想法??这是缓存的问题吗??
任何形式的帮助将不胜感激..
页面输出缓存在浏览器请求后将动态页面(例如 ASP 页面或 ASP.NET 页面)的响应存储在内存中。当后续请求到达页面时,服务器发送缓存的响应而不是重新处理页面。
查看这篇文章,它可能对你有帮助。
http://www.iis.net/ConfigReference/system.webServer/caching
这些链接也将帮助您
http://learn.iis.net/page.aspx/710/configure-iis-7-output-caching/
https://serverfault.com/questions/126914/output-caching-with-iis7-how-to-for-an-dynamic-aspx-page
IIS7:为所有 aspx 页面设置“无缓存”,但不是图像/css/js
https://superuser.com/questions/63014/how-do-i-turn-off-caching-in-iis7
就我而言,我正在使用 Chrome 开发人员工具查看托管在 IIS 上的 Html 文件的源代码,当我修改 html 文件并刷新 IIS 站点时,刷新浏览器后未修改 chrome 中显示的源代码。
一开始我猜它是IIS缓存,但是在我尝试了其他答案中的链接后,它并没有真正起作用:https ://superuser.com/questions/63014/how-do-i-turn-off-caching-在-iis7
最后我去Chrome设置并清除Chrome文件缓存,html源代码成功更改。所以在我的情况下,它是由 Chrome 的缓存引起的,希望它对某人有所帮助。
这是我发现的,有一个 HTTPCompression 设置可能将 sendCacheHeading 设置为 true。我在 applicationHost.config 文件中找到了它并在那里进行了更改,但也可以使用配置编辑器在 IIS 中进行更改。
例子:
如果要通过 IIS 更改此设置,请选择配置编辑器,然后单击顶部的下拉箭头并展开 system.webserver,然后选择 httpCompression。
根据 Laurenz 的要求,我已经复制了我在配置文件中找到的文本版本以及我将其更改为:
原文:
<httpCompression sendCacheHeaders="true" directory="C:\Windows\IIS 临时压缩文件" maxDiskSpaceUsage="1000000" noCompressionForProxies="false" noCompressionForRange="true">
更改为:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS 临时压缩文件">