为什么 asp.net outputcache 是会话特定的?

Why is asp.net outputcache being session specific?

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

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

我的 url 通常是这样的。 http://example.com/{位置}/优惠/{类别}

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

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

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

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