Кэширование вывода IIS 7 на динамических страницах с обратными отправками

#asp.net #iis

#asp.net #iis

Вопрос:

Я включил кэширование вывода в IIS 7 и изменил его для всех строк запроса, используя * . Однако некоторые страницы работают некорректно. Например, у меня есть страница входа, на которой есть asp:LinkButton , которая при нажатии должна регистрировать пользователя и перенаправлять его. Однако IIS кэшировал эту страницу, и поэтому все, что происходит, когда я нажимаю войти, — это перезагрузка страницы. Какие предложения у вас были бы, чтобы избежать этого ожидаемого поведения для некоторых страниц, сохраняя его на других?

Заранее спасибо.

Ответ №1:

Вы не можете этого сделать. Кэширование выходных данных работает путем кэширования отображаемого HTML-кода страницы в соответствии с указанными параметрами — в вашем случае, любой строки запроса. Когда вы нажимаете кнопку ссылки, вызывающую обратную отправку, это, по сути, отправка формы на ту же страницу, т. Е. тот же URL, та же строка запроса. Таким образом, модуль OutputCache найдет соответствие и отправит его обратно, пропуская жизненный цикл вашей страницы. Поэтому обратная отправка обрабатываться не будет.

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