Я предполагаю, что проблема связана с кешированием. Изменения кода, которые я делаю, не получают, когда я отлаживаю. В большинстве случаев я получаю предыдущую версию приложения. Как я могу предотвратить это?Предотвращение кэширования Silverlight 3 при отладке
ответ
Насколько я понимаю, это похоже на проблему с Firefox - когда я использовал IE8, этого не случилось со мной (я понимаю, что это может открыть собственную банку червей, но, по крайней мере, для отладки и тестирования Silverlight, IE намного лучше)
У меня не было никаких проблем с получением кэширования Silverlight, вы можете попробовать отладить HTTP-запросы, которые идут туда и обратно, чтобы увидеть, может ли ваш сервер вместо этого возвращать неверную информацию браузера (например, «не измененный» ответ).
Для общего поведения без кеша единственным надежным методом, который я нашел, является отключение кэширования в браузере.
Для IE это единственный надежный вариант - в противном случае, даже если правильные заголовки без кеша отправляются, некоторые вещи все еще кэшируются (в частности, динамически загружаемые ресурсы, к которым обращаются через Javascript XmlHttpRequest). У меня не было особых проблем с получением Silverlight при кэшировании, если это не так, но IE всегда загружал последние обновления, даже если кеш включен.
Firefox был гораздо более проблематичным - даже при отключении кеша он по-прежнему иногда кэширует ресурсы, загруженные XmlHttpRequest. Обновление вручную несколько раз было единственным решением в этом случае. Еще раз, у меня не было проблем с сборками Silverlight, даже если кеш включен.
В Firefox я использую плагин «веб-разработчика» и просто выбираю «отключить кеш». Работает отлично.
Я не могу сказать это каждому пользователю моего сайта, поэтому у меня есть лучшее решение для всех. –
Это только для отладки. Вам не нужно указывать каждому пользователю вашего сайта, он также нарушает реализацию кэша для остальных ваших пользователей. – ChadT
Ну, мы не хотим кэшировать старую версию, когда выпускаем новую версию, нет вопроса о ее нарушении. –
Попробуйте добавить к странице, которая содержит Silverlight приложения на Page_Load:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-100));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Ctrl + F5 представляет собой простой способ обновить страницу и очистить кеш этой страницы в то же время - это может помочь :)
В Firefox 3.5 в разделе «Инструменты» есть опция «Частный просмотр». Нажмите, чтобы отключить кеширование.
Добавляет «версию» строку запрос на ваш XAP Url, что-то вроде:
http://localhost:1234/ClientBin/my_silverlight_app.xap?v=1.0.287.5361
Это будет обмануть браузер (и многие веб-сервера), чтобы думать, что это другой файл. И когда проблема с кэшем появляется снова, увеличьте число.
Если вы хотите использовать надлежащее кэширование, сделайте это на стороне сервера с помощью инструкций OutputCache.
Вот как я это сделал для flex/flash и silverlight, и он работает.
Код За ASPX или CSHTML
string slUrl = "/ClientBin/MySilverlight.xap";
string filePath = Server.MapPath(slUrl);
FileInfo info = new FileInfo(filePath);
// this will force browser to
// re download file if file was
// updated
slUrl += "?t=" + info.FileWriteTime.Ticks;
ASPX или CSHTML
<embed ....
src="<%= slUrl %>"
..
/>
Trick это вы должны изменить URL, добавляя что-то после того, как ?
и сделать новую произвольную случайную строку запроса или использовать время записи файла, а для браузера something?t=1
и something?t=2
- два URL-адреса, и он не будет записывать кеш, если t изменения.
Вместо времени записи вы также можете выбрать любое стандартное значение конфигурации, или вы даже можете просто скопировать свой ASPX или HTML и добавить что-то после ?
, что заставит браузеры снова загружать xlight файл silverlight.
<embed ....
src="/ClientBin/MySilverlight.xap?something-different-each-time"
...
/>
- 1. Предотвращение кэширования Silverlight xap прокси-сервером
- 2. Предотвращение кэширования при загрузке изображений
- 3. Предотвращение закрытия консоли при отладке
- 4. Предотвращение кэширования данных dataTable
- 5. Предотвращение кэширования javascripts и css при разработке
- 6. Предотвращение кэширования возвращенного представления при возникновении ошибки
- 7. Предотвращение кэширования изображений
- 8. Предотвращение кэширования ответа ajax
- 9. Предотвращение кэширования IE
- 10. Предотвращение кэширования формы
- 11. Предотвращение кэширования extrenalhit
- 12. Предотвращение кэширования файлов браузера
- 13. Предотвращение кэширования файлов CSS
- 14. Предотвращение кэширования процессора?
- 15. Упорная проблема кэширования Silverlight?
- 16. Предотвращение кэширования динамического (php) контента
- 17. предотвращение кэширования пользовательской сессии пользователя
- 18. Grails - предотвращение кэширования измененных ресурсов
- 19. Предотвращение NSURLSession от ответов кэширования
- 20. Предотвращение кэширования браузера связанного файла
- 21. Предотвращение гибкого кэширования внешнего ресурса
- 22. Предотвращение кэширования браузером запросов PHP
- 23. Предотвращение кэширования импортированных модулей Python
- 24. Предотвращение Rails 2/3 из кэширования Lib/Classes
- 25. Предотвращение кэширования в форме submit
- 26. Предотвращение кэширования IE AngularJS/Restangular
- 27. Предотвращение кэширования на Img/карте
- 28. Предотвращение кэширования файлов сайта ASP.NET
- 29. Предотвращение частичного кэширования веб-ресурсов
- 30. Предотвращение кэширования DNS-записей сайта
Как вы отлаживаете, работаете в Visual Studio? У вас есть тестовый веб-сайт в решении? В каком браузере вы размещаете SL? – AnthonyWJones
Привет, это микрофон? ... У вас есть 4 upvotes по этому вопросу, но вы не ответили на мои вопросы выше и не ответили ни на одного из тех, кто потратил время, чтобы попытаться ответить на ваш вопрос. – AnthonyWJones