Кэширование страниц ASP.NET в веб-ферме

У нас есть небольшая веб-ферма (2 сервера), сбалансированная встроенным балансировщиком сетевой нагрузки в Windows 2003. У нас есть несколько страниц, которые используют кэширование страниц. Мой вопрос: возможно ли, что данный пользователь может вызвать кеширование страницы, а другой пользователь увидит этот контент? Вот директива страницы для рассматриваемой страницы:

<%@ OutputCache Duration="1" NoStore="true" VaryByParam="none" %>

Причина, по которой продолжительность установлена ​​на «1», заключается в том, чтобы гарантировать, что страница не кэшируется дольше 1 секунды из-за транзакций, которые могут быть вызваны действиями на странице.


person Achilles    schedule 11.03.2010    source источник
comment
Зачем вообще кешировать в показанном вами сценарии?   -  person Keith Adler    schedule 11.03.2010
comment
На самом деле мы пытаемся предотвратить кеширование, когда пользователь нажимает кнопку «Назад».   -  person Achilles    schedule 11.03.2010


Ответы (2)


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

person azamsharp    schedule 12.03.2010

Да, все пользователи, запросившие страницу в конкретную секунду, увидят ОДИНАКОВЫЙ вывод.

В asp.net лучше использовать OutputCache на уровне элементов управления, который имеет тот же синтаксис.

Вы можете использовать VaryByCustom и сделать это на основе имени пользователя или другой информации. я реализовал это для страницы, которая показывала информацию, зависящую от местоположения.

Кроме того, нет смысла реализовывать его на основе логина/идентификатора пользователя, потому что пользователи не будут запрашивать данные несколько раз в секунду.

person st78    schedule 11.03.2010
comment
Даже если для свойства Duration установлено значение 1? Мы пытаемся заставить истечение срока действия страницы происходить после каждой обратной передачи, чтобы пользователь не мог щелкнуть назад и повторно опубликовать транзакции. - person Achilles; 11.03.2010
comment
«Назад» в большинстве случаев загрузит страницу из кеша браузера. OutputCache вообще не может вам в этом помочь. Я думаю, вам нужно поиграть с заголовками страниц, где должна быть возможность указать срок действия страницы, но я не эксперт в этом - person st78; 12.03.2010