我有一个页面,我想使用OutputCache指令进行缓存。但是,我使用URL重写器模块在此页面上引导多个URL,每个URL具有不同的内容。
有没有办法为每个URL使用缓存输出?我没有其他标准可以改变缓存结果。
答案 0 :(得分:11)
最后,修复非常简单。
将以下指令添加到需要缓存的页面中:
< %@ outputcache duration =“600”location =“Downstream”varybyparam =“none”varybycustom =“RawURL”%>
将此方法添加到global.asax文件
public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom.ToUpper())
{
case "RAWURL":
return context.Request.RawUrl;
default:
return "";
}
}
答案 1 :(得分:0)
以编程方式,您可以使用 Response.Cache 设置缓存选项。您可以打开querystring变量,并根据具体情况,在 Response.Cache 上相应地设置属性。
MSDN on Cache object
Another helpful article from aspalliance.com