根据URL更改OutputCache

时间:2009-11-24 16:59:51

标签: asp.net caching url-rewriting

我有一个页面,我想使用OutputCache指令进行缓存。但是,我使用URL重写器模块在此页面上引导多个URL,每个URL具有不同的内容。

有没有办法为每个URL使用缓存输出?我没有其他标准可以改变缓存结果。

2 个答案:

答案 0 :(得分:11)

最后,修复非常简单。

  1. 将以下指令添加到需要缓存的页面中:

    < %@ outputcache duration =“600”location =“Downstream”varybyparam =“none”varybycustom =“RawURL”%>

  2. 将此方法添加到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