IIS 6 + ASP.NET 输出缓存不起作用

IIS 6 + ASP.NET 输出缓存不起作用

从标题可以看出,我们的输出缓存不起作用。我们最近才注意到,但它曾经起作用(可通过页面底部的隐藏时间戳进行验证;我们使用缓存了 3600 秒varybyparam="*")。我们试图隔离导致问题的代码片段(页面未进入缓存,立即失效,或者用于缓存它的密钥是唯一的,并且无法/不会找到缓存的页面),结果是当我们推荐这行时:

System.Web.HttpContext.Current.Response.AppendCookie(objCookie)

从 cookie 类开始,缓存开始完美运行!

我们不确定缓存无法工作了多久,但怀疑是 Microsoft Windows 更新漏掉了 QA。我们已经在一台较旧的、未打补丁的虚拟服务器上验证了输出缓存工作正常(尽管环境与我们的生产环境并不完全一样,因此存在一些疑问),并且我们不需要对代码进行任何更改即可使其正常工作。只有在我们的生产服务器(Win2k3、x64,但应用程序池以 32 位模式运行、IIS 6、.Net 2.0)上我们才会遇到此问题。

经过几天的谷歌搜索,我们只找到了有关在应用 MS11-100 后 SharePoint 的输出缓存中断的参考资料。我们遇到了难题,并联系了 Microsoft 支持部门,但想知道社区中是否有人遇到过此问题或类似问题,或者只是知道如何修复。

答案1

我们最近也遇到了这个问题,同样的故事,除了“我们从来没有找到任何关于这个问题的好文章”http://todd-carter.com“。

我们已决定停止不必要地使用“.AppendCookie(”。现在我们正在检查 Response.Cookie 是否已存在,并且 cookie 值已存在,则不更新 Cookie。这样做我们的输出缓存开始工作。

如果您还有其他解决方案,请回复。 [电子邮件保护]

相关内容