Предотвращение кэширования Silverlight от кеширования прокси-сервером - PullRequest
6 голосов
/ 28 января 2010

Компания, в которой я работаю, имеет прокси-серверы / WAN-ускорители между нашими международными сайтами для кэширования веб-содержимого в интрасети. У меня есть приложение Silverlight, размещенное на сервере в одном месте, но доступ к которому получают клиенты в другом месте. Когда пользователи получают доступ к веб-странице, на которой размещено приложение Silverlight, они получают устаревший xap-файл, который кэшируется прокси-сервером, а не последнюю версию с сервера. Локальные пользователи всегда получают последнюю версию xap, поскольку их запросы не проходят через прокси.

Я попробовал различные методы заголовка / метаданных, упомянутые в другом месте, чтобы предотвратить кеширование, и сама содержащаяся веб-страница обновляется, но я все еще получаю старый файл .xap. Если не считать, что наш ИТ-администратор отключил кэширование прокси для моего сайта, могу ли я что-нибудь сделать, чтобы последний файл xap был получен с сервера, а не через прокси? Содержащая страница ASP.NET.

Ответы [ 2 ]

4 голосов
/ 29 января 2010

Я просто добавляю строку запроса в конце пути к файлу xap. Затем, когда вы изменяете переменную querystring, прокси и т. Д. Должны видеть это как запрос к новому файлу. До сих пор это работало хорошо для меня.

Таким образом, при встраивании .xap в обычный HTML-файл вы должны сделать следующее:

<param name="source" value="ClientBin/SilverlightApplication1.xap?cachepreventer=whatevervalue"/>

А потом, когда вы развернете новую версию, просто измените «whatvalue» на что-то другое.

EDIT
Если вам нужно использовать эту технику во многих местах вашего приложения, я бы прочитал значение строки запроса из конфигурации и просто записал его на страницу, используя asp.net. Таким образом, вам нужно только обновить его в одном месте при развертывании.

2 голосов
/ 20 июня 2010

Если вы хотите, чтобы каждый раз получал xap-файл, и вам не нужно об этом беспокоиться - просто используйте

" />

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

...