2010-09-09 3 views
2

У меня есть сайт ASP.NET с пользовательской системой кеширования на стороне сервера, которая является кошмаром. Я хочу использовать eTags, чтобы заменить это.eTag и многие версии страницы

Многие ссылки на сайте возвращают разные версии страницы в зависимости от состояния сеанса для пользователя. Пример. Mypage.aspx? P = a вернет разные версии mypage - одинаково действительные, в зависимости от состояния сеанса. Я хотел бы кэшировать все версии.

Не переделывая навигационные ссылки, как я могу это сделать? Из того, что я прочитал, включение каждого eTag в каждый из них, когда они сгенерированы и обслуживаются в первый раз, просто приведет к тому, что обновленная версия будет недействительной и будет удалена из кеша.

Благодаря

PS я мог использовать Response.Cache.VaryByHeaders [ "Content-Length"] = TRUE и полагаться на каждую версию, отличающимися по длине?

PPS Глупые идеи! Как насчет добавления настраиваемого заголовка с ключом версии для ответа и использования VaryByHeaders.

ответ

0

Проблема, с которой вы сталкиваетесь с пользовательскими заголовками, - это то, что вещь на другом конце понимает их, они не будут возвращены. Поэтому отправка пользовательских заголовков в IE приведет к их игнорированию.

Вы можете использовать выходное кэширование. Вы можете создать свой собственный outputcacheprovider. Это позволит вам работать с кешем на основе ваших требований.

См. http://msdn.microsoft.com/en-us/library/hdxfb6cy(VS.90).aspx для получения подробной информации о выходном кэшировании.

Похоже, что outputcacheprovider является только .Net 4

Смежные вопросы