关于缓存:为什么 asp.net outputcache 是特定于会话的?

Why is asp.net outputcache being session specific?

我正在尝试在我的 .aspx 页面中实现输出缓存。我的指令是这样的

< %@ OutputCache Duration="600" VaryByParam="*" %>

我的网址通常是这样的。 http://example.com/{location}/offers/{category}

但在测试过程中,我发现缓存似乎只在会话中起作用。即来自同一台计算机的相同 URL 的请求返回一个缓存页面,其中来自不同计算机的相同 URL 的请求返回一个新页面。而且,我的参数中没有任何内容会随着会话/用户而改变。这里的任何人都知道如何修复它以跨会话工作,请分享您的想法。


已修复。发现另一个程序员在做移动处理代码时将这段代码留在了 aspx.cs 中。

context.Response.Cache.VaryByHeaders.UserAgent = true;

关闭它,现在 outputcache 可以跨会话工作。太好了!