WebMethod Кэширует изображения, не входящие в обработчик - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть WebMethod, который получает HTML в качестве параметра примерно так:

Public Function ConvertHtmlToPdfListAnswer(ByVal dokument As Dokument) As Byte()

В этом HTML мой путь, например, к подписи пользователя выглядит следующим образом:

Handlers/SzablonyListImgHandler.ashx?usid=2006

Мой обработчик запускается так:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

и он берет параметр из контекста, создает запрос для данных и возвращает вывод потока следующим образом:

If Not String.IsNullOrEmpty(context.Request.QueryString("usid")) Then
...
...
streamOut.WriteTo(context.Response.OutputStream)

Моя проблема в том, что он запускается один раз ... Я имею в виду, что когда я снова вызываю сервис, он не входит в обработчик, но уже показывает мне изображение, когда я проверяю HTML в представлении отладчика. Поэтому, когда пользователь изменяет свою подпись в базе данных, метод сервиса все еще возвращает предыдущую ... Я думаю, что это может быть какая-то проблема с чахе ... Любые идеи ??

1 Ответ

1 голос
/ 05 ноября 2010

да, это проблема кеширования, браузер кэширует результат обработчика, и при повторном вызове обработчика браузер возвращает кэшированный результат.

для предотвращения кэширования необходимо установить это в обработчике, прежде чем записывать поток в context.Response.OutputStream

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
...