我有一个带有自定义服务器端缓存系统的ASP .NET站点,这是一个噩梦。我想用eTags代替它。
站点中的许多链接根据用户的会话状态返回页面的不同版本。一个例子 - mypage.aspx?p = a将返回不同版本的mypage - 同样有效,具体取决于会话状态。我想缓存所有版本。
如果没有完全重新设计导航链接,我该怎么做?根据我的阅读,在第一次生成和提供时,在每个上添加不同的eTag将导致最后生成的版本无效并从缓存中删除。
由于
PS我可以使用Response.Cache.VaryByHeaders [“Content-Length”] = true并依赖每个版本的长度不同吗?
PPS愚蠢的想法!如何为响应添加带有版本密钥的自定义标头,并在其上使用VaryByHeaders。
答案 0 :(得分:0)
自定义标题存在的问题是除非另一端的事物理解它们,否则它们不会被回报。因此,向IE发送自定义标头只会导致忽略它们。
您可以使用输出缓存。可以创建自己的outputcacheprovider。这会让你根据自己的要求搞乱缓存。
有关输出缓存的详细信息,请参阅http://msdn.microsoft.com/en-us/library/hdxfb6cy(VS.90).aspx。
看来outputcacheprovider只是.Net 4