不调用GetVaryByCustomString方法

时间:2015-03-25 10:39:33

标签: c# asp.net sitecore outputcache

在生产服务器上出现问题。在本地和测试服务器上,不会再现此问题。

.NET 4.5,Sitecore 7.2。

多个用户控件具有以下指令:

<%@ OutputCache VaryByParam="*"  Duration="300" VaryByCustom="VaryByUrl" %>

注意:相应的sitecore子布局已关闭缓存。

Global.asax中的方法:

    public override string GetVaryByCustomString(HttpContext context, string custom)
    {
        switch (custom.ToLower())
        {
            case "varybyurl":
                return context.Request.Url.DnsSafeHost + context.Request.RawUrl + OutputCacheKey;
        }

        return base.GetVaryByCustomString(context, custom);
    }

以前缓存工作正常。但是从最近几次开始,它突然被破坏了(但只在实时服务器上)。它的行为:

  • 带有用户控件的页面#1(已提及指令)加载了一些信息(例如&#34;文本A&#34;)。
  • 然后我打开另一个页面#2,使用相同的控件但使用另一个数据(应该有&#34;文本B&#34;),但是&#34;文本A&#34;在此页面的此控件上显示。
  • 仅在300秒后,刷新第2页后,它会显示&#34;文字B&#34;。
  • 我试图将日志记录添加到GetVaryByCustomString中,并且没有在实时服务器上收到任何日志,因此这意味着该方法未被调用。

也许有人知道它为什么会以这种方式运作? 谢谢!

1 个答案:

答案 0 :(得分:0)

找到问题的原因!

实时服务器上没有

Global.asax 文件。

由于某种原因,它在上一次构建期间没有交付。

当前问题可能会被解决:)