ASP.NET 输出缓存在 IIS7.5 上不起作用

Posted

技术标签:

【中文标题】ASP.NET 输出缓存在 IIS7.5 上不起作用【英文标题】:ASP.NET Output Cache not working on IIS7.5 【发布时间】:2011-10-27 06:10:42 【问题描述】:

我正在为我的 ASP.NET 3.5 网站上的页面使用输出缓存功能,它在我的本地计算机 (Win XP / IIS5.1) 上运行良好,但在开发服务器上运行时它不会缓存 ( IIS7.5)。

我正在使用的代码如下...

<%@ OutputCache Duration="3600" Location="Server" VaryByParam="*" %>

有谁知道如何让输出缓存在 IIS7.5 上工作?我已经通过 *** 和 Google 进行了搜索,但找不到任何遇到类似问题的人。

任何帮助将不胜感激。

干杯,

蒂姆。

【问题讨论】:

您确定安装了缓存模块吗?根据您安装 IIS 的方式,并非所有模块都默认安装。如果是这样并且您需要安装它,我建议使用 Microsoft 的 Web Platform Installer。 microsoft.com/web/downloads/platform.aspx 是的,缓存模块已安装(我可以在 IIS 管理器中看到它)。但是,我了解页面输出缓存是 ASP.NET 的一部分,而不是 IIS。我在我的应用程序的其他部分使用应用程序缓存(System.Web.UI.Page.Cache),这似乎运行正常。真的不知道为什么输出缓存不起作用!无论如何,谢谢。 请发布相关的 web.config 设置、使用输出缓存的更多上下文、您使用什么来确定是否缓存、页面配置文件输出、.Net 版本差异 b/w 开发和生产环境等。 我想我已经找到了输出缓存不起作用的原因。我正在 global.asax 的 Application_BeginRequest 函数中重写请求。如果我禁用重写输出缓存工作。 我也刚刚将我的应用程序从集成模式切换到经典模式,现在即使使用 RewritePath 方法重写了 url,输出缓存也可以正常工作 【参考方案1】:

您是否正在重写 global.asax 中的 URL?正是因为如此。

您是否尝试过将集成模式切换到经典模式,因为集成模式会覆盖在 IIS 6.0 中有效而在 IIS 7.5 中无效的设置。

【讨论】:

以上是关于ASP.NET 输出缓存在 IIS7.5 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

QueryStringParameters 在 ASP.Net objectDataSource 上不起作用

Bootstrap CSS 在 ASP.net 上不起作用

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE

FileUpload.PostedFile.SaveAs() 在实时网站 asp.net 上不起作用

ASP.NET Core 2.2 - 密码重置在 Azure 上不起作用(无效令牌)

在生产 IIS7.5 上配置 ASP.NET 应用程序 CPU 使用情况