Любой известный подход к запуску веб-сайта с целью осуществления кэширования вывода - PullRequest
1 голос
/ 24 декабря 2011

Предположим, что у нас есть веб-сайт, который работает на IIS 7.5 и построен на ASP.NET MVC 3. Также предположим, что на этом веб-сайте есть множество уникальных страниц для продуктов, и все эти страницы кэшируются в памяти в течение 24 часов. Есть и другие страницы, которые получают выгоду от кэширования вывода.

Пока все хорошо. Как только мы внедряем новое обновление в IIS, пул перерабатывается и весь кэш исчезает.

Итак, я рассматриваю создание консольного приложения, которое в основном выполняет одну задачу: иди и используй каждую страницу для сайта.

Это способ делать такие вещи? Есть какой-нибудь известный метод для этого?

Ответы [ 3 ]

2 голосов
/ 25 декабря 2011

Существует много способов решения этой проблемы.Несколько:

  1. Предварительно кэшируйте данные в SQL Server, выполняя запросы, которые считывают необходимые таблицы в ОЗУ.Конечно, вам нужно достаточно оперативной памяти для размещения таблиц.Вы можете запустить задачу из агента SQL в определенное время.
  2. Добавить средний уровень распределенного кэширования, такой как AppFabric (предупреждение: потенциальные головные боли)
  3. Использовать автозапуск приложения .NET 4.0 икласс предварительного подогрева кеша
  4. Использование Application_Start () в global.asax
  5. Запуск фонового потока в вашем приложении, который считывает необходимые структуры данных
  6. Использование ASP.NETКэширование объектов в дополнение к выходному кешированию и предварительной загрузке кеша объектов одним из указанных выше способов
  7. В дополнение к или вместо выдачи запросов БД из фонового потока или кеш-подогревателя, используйте класс WebRequest для выборкикопия каждой страницы в вашем приложении, что приведет к ее загрузке в кэш вывода.
  8. Настройте AppPool на перезагрузку в определенное время дня и запуск запланированной задачи Windows в определенное время.после этого происходит загрузка страниц и т. д.
1 голос
/ 24 декабря 2011

Посмотрите на Microsoft AppFabric , это распределенный кеш, и кэшированные элементы выживут, когда сайт будет переработан.

0 голосов
/ 24 декабря 2011

В .NET 4.0, кэш вывода расширяемый. Чек http://msdn.microsoft.com/en-us/magazine/gg650661.aspx

...