Я исправляю ошибку с ASP.NET OutputCache, и это сводит меня с ума. Мы хотим кэшировать на сервере, но он не работает (это было давно, в старой версии нашего приложения, но мы недавно обнаружили ошибку).Как проверить ASP.NET MVC OutputCache работает на сервере?
Локально, я просто не могу заставить кеширование работать на стороне сервера. С помощью этого атрибута:
[OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work
Теперь, основываясь на несколько вещей, которые я читал прибегая к помощи вокруг, здесь, возможно, соответствующая информация:
- кэширование вывода включена в IIS (локальный)
- I DO использовать AuthorizeAttribute (пользовательский с наследованием). Я отлаживал это специально, и я на 95% уверен, что это не причина.
- Я искал различные значения
VaryByParams
, ничего не работает. - Кэширование Работа на стороне клиента.
Я открыл сессию perfmon
и добавлены некоторые счетчики из Web Service Cache
группы, Все, что я вижу, что там являются кэшировать URL, но кэш пропустил:
Большая проблема/ошибка, с которой мы сталкиваемся сейчас, заключается в том, что OutputCache не работает вообще прямо сейчас. Мы смогли исправить это, указав VaryByParams=""
(пустая строка). Это сделало это для клиента. Но сервер еще не работает.
Я действительно проверяю, работает оно или нет, помещая точку останова отладки в действие, которое должно быть кэшировано. Он получает удар каждый раз, что должно означать, что кеш не попал.
У меня была аналогичная проблема, и это было проблемой с профилями кеша. Если я не использовал профиль кэша и вместо этого подключил значения непосредственно к контрибутору атрибутов, он работал. Вы пробовали это? – heymega
@heymega Я попробовал, и это не имеет значения. – MarioDS
@MarioDS: Я сталкиваюсь с той же проблемой. Вам удалось решить эту проблему? – user1107799