2

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

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

如果不完全重新设计导航链接,我该怎么做?根据我所读到的,在它们第一次生成和提供时在它们上放置一个不同的 eTag 只会导致最后生成的版本失效并从缓存中删除。

谢谢

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

PPS 愚蠢的想法!将带有版本键的自定义标头添加到响应中并在其上使用 VaryByHeaders 怎么样。

4

1 回答 1

0

自定义标头的问题是,除非另一端的东西理解它们,否则它们不会得到回报。因此,将自定义标头发送到 IE 只会导致它忽略它们。

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

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

看起来 outputcacheprovider 只是.Net 4

于 2011-04-07T17:15:41.370 回答