Как я могу отладить, почему вещи продолжают удаляться из моего кэша asp.net-mvc - PullRequest
1 голос
/ 11 июля 2011

в любом случае нужно посмотреть на веб-сервере Windows, чтобы увидеть текущий размер кэша asp.net и сколько места осталось до того, как все будет отклонено.

Я настроил кеширование объектов в течение 48 часов, но я продолжаю наблюдать, как веб-страницы загружаются медленно, поэтому что-то удаляется из кеша. (Я передаю переменную в представление, которое указывает, получил ли он набор результатов из кэша или нет. Когда я загружаю страницу, я ожидаю, что это будет True в течение следующих 48 часов, но, похоже, это не так. случается.

любые предложения о том, как я могу отладить это дальше, чтобы выяснить следующие шаги.

1 Ответ

3 голосов
/ 11 июля 2011

ASP.NET будет кэшировать в память по умолчанию, вы можете добавить кеширование на диск, но это будет намного медленнее, и вам нужно будет написать или найти поставщика.

ASP.NET может удалить данные изкэш по одной из следующих причин:

  • Поскольку на сервере недостаточно памяти, процесс известен как очистка.
  • Поскольку срок действия элемента в кэше истек.
  • Поскольку зависимость элемента изменяется.

Чтобы помочь вам управлять кэшированными элементами, ASP.NET может уведомить ваше приложение об удалении элементов из кэша.

http://msdn.microsoft.com/en-us/library/ms178597.aspx

Где содержимое кэшируется

По умолчанию при использовании атрибута [OutputCache] содержимое кэшируется в трех местах: веб-сервер, любые прокси-серверы и веб-браузер.,Вы можете точно контролировать, где содержимое кэшируется, изменяя свойство Location атрибута [OutputCache].

Можно установить для свойства Location любое из следующих значений:

  • Любой
  • Клиент
  • Нисходящий
  • Сервер
  • Нет
  • ServerAndClient

http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-cs

Дополнительная информация

http://www.codeproject.com/KB/web-cache/cachemanagementinaspnet.aspx

...