eTag和许多版本的页面

时间:2010-09-09 13:21:22

标签: asp.net caching etag

我有一个带有自定义服务器端缓存系统的ASP .NET站点,这是一个噩梦。我想用eTags代替它。

站点中的许多链接根据用户的会话状态返回页面的不同版本。一个例子 - mypage.aspx?p = a将返回不同版本的mypage - 同样有效,具体取决于会话状态。我想缓存所有版本。

如果没有完全重新设计导航链接,我该怎么做?根据我的阅读,在第一次生成和提供时,在每个上添加不同的eTag将导致最后生成的版本无效并从缓存中删除。

由于

PS我可以使用Response.Cache.VaryByHeaders [“Content-Length”] = true并依赖每个版本的长度不同吗?

PPS愚蠢的想法!如何为响应添加带有版本密钥的自定义标头,并在其上使用VaryByHeaders。

1 个答案:

答案 0 :(得分:0)

自定义标题存在的问题是除非另一端的事物理解它们,否则它们不会被回报。因此,向IE发送自定义标头只会导致忽略它们。

您可以使用输出缓存。可以创建自己的outputcacheprovider。这会让你根据自己的要求搞乱缓存。

有关输出缓存的详细信息,请参阅http://msdn.microsoft.com/en-us/library/hdxfb6cy(VS.90).aspx

看来outputcacheprovider只是.Net 4