Отключить кеш страниц на определенной странице - PullRequest
2 голосов
/ 26 марта 2010

Не уверен, действительно ли я нахожусь на правильном форуме, но если нет, просто скажите мне. У меня есть страница, которая закодирована в ASP (не .net), которая используется для отправки электронной почты. В настоящее время у нас возникла проблема, из-за которой страница кажется отправленной дважды. После проверки мы обнаружили, что те, у кого есть эта проблема, происходят из большой организации, поэтому было предложено, чтобы их сервер по какой-то причине мог кэшировать файл.

Я хотел бы знать, есть ли способ в HTML (или ASP) предотвратить это? Или в IIS это нужно настроить?

РЕДАКТИРОВАТЬ: я забыл упомянуть, что иногда между двумя письмами могут быть часы, а не секунды

Спасибо

Ответы [ 3 ]

1 голос
/ 26 марта 2010

Я не вижу здесь никакой проблемы с кешем.

Единственное решение, которое я вижу, - хранить где-то на стороне сервера (db, файловая система) список отправленных писем и проверять список перед отправкой.

При таком подходе вы обязательно отправите только одно письмо на указанный адрес, чтобы избежать двойной отправки или других возможных проблем.

0 голосов
/ 26 марта 2010

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

Вы можете попробовать добавить этот код, чтобы увидеть, если он имеет значение:

Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache" 

Если это не работает, вам может потребоваться связаться с ИТ-отделом этой организации и попросить их добавить исключение для кэширования для вашей страницы / сайта.

0 голосов
/ 26 марта 2010

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

Однако, я думаю, это связано с пользователями, которые обновляют страницу. Чтобы избежать этого, вы можете реализовать шаблон post / redirect, где после отправки почты вы перенаправляете на другую страницу (или ту же страницу, но с другими параметрами формы). Таким образом, пользователь может обновлять страницу столько раз, сколько он / она хочет, не вызывая отправку другого электронного письма.

...