我有一个 ASP.Net 站点(恰好是 MVC,但这与这里无关),其中有几个页面我想缓存得很好。
具体来说,我想实现:
(注意 - 上述时间值仅供引用)
但我似乎无法让所有这些东西一起工作。这是我所拥有的:
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetETagFromFileDependencies();
Response.Cache.SetValidUntilExpires(true);
Response.Cache.SetMaxAge(TimeSpan.FromSeconds(60 * 10));
我想要的场景可能吗?尤其:
感谢您的任何提示!
最佳答案
我不确定你是否已经解决了这个问题(几个月后......),但这应该是可能的。SetMaxAge
应该设置“保证”新鲜时间的数量。如果您另外发送一个 ETag,您将满足 3 和 4。需求 1 和 2 可以通过您使用的任何服务器端缓存机制正交解决:我从未使用过这样的 ASP.NET 服务器端缓存,但是这几乎肯定是可能的。
我会从您的回复中删除无关的标题,例如 SetRevalidation
- 为什么有必要这样做?
关于asp.net - 在 ASP.Net MVC 和 IIS 7.5 中设置最佳 http 缓存 header 和服务器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704433/