Возникли проблемы с производственным сервером. На локальных и тестовых серверах эта проблема не воспроизводится.Метод GetVaryByCustomString не называется
.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 с пользовательским управлением (с упомянутой директивой) загружается с некоторой информацией (например, «Текст А»).
- Затем я открываю другую страницу # 2 с тем же элементом управления, но с другими данными (которые должны иметь «текст B»), но на этом элементе управления на этой странице отображается «Текст А».
- Только через 300 секунд после обновления страницы # 2 отображается «Текст B».
- Я пытался добавить запись в GetVaryByCustomString, и на реальном сервере не было получено никаких журналов, поэтому это означает, что метод не был вызван.
Возможно, у кого-то есть представление, почему оно работает таким образом? Спасибо!