Supongo que el problema que estoy teniendo está relacionado con el almacenamiento en caché. Los cambios de código que realizo no se recogen cuando depuro. La mayoría de las veces me sirven una versión anterior de la aplicación. ¿Cómo evito que esto suceda?Evite que Silverlight 3 cachee mientras depura
Respuesta
Por lo que veo, esto parece ser un problema con Firefox: cuando usé IE8, esto no me pasó a mí (me doy cuenta de que esto puede abrir su propia lata de gusanos, pero al menos para la depuración y prueba Silverlight, IE es mucho mejor)
No he tenido ningún problema con los ensamblados de Silverlight que se almacenan en caché; es posible que desee intentar depurar las solicitudes HTTP que van y vuelven, para ver si su servidor está devolviendo información incorrecta a el navegador (por ejemplo, una respuesta "no modificada").
Para el comportamiento general sin caché, el único método confiable que he encontrado es desactivar el almacenamiento en caché en el navegador.
Para IE, esta ha sido la única opción confiable; de lo contrario, incluso si se envían encabezados de no-caché adecuados, ciertas cosas aún se almacenan en caché (específicamente, recursos cargados dinámicamente a los que se accede mediante Javascript XmlHttpRequest). Sin embargo, no he tenido problemas específicamente con la copia en caché de Silverlight cuando no debería: IE siempre ha cargado las últimas actualizaciones, incluso si la caché está habilitada.
Firefox ha sido mucho más problemático: incluso cuando se desactiva la caché, a veces aún almacena en caché los recursos XmlHttpRequest-loaded. Pulsar manualmente Actualizar algunas veces ha sido la única solución en tal caso. Una vez más, no he tenido problemas con los ensamblados de Silverlight, incluso si el caché está activado.
En Firefox, utilizo el complemento 'desarrollador web' y simplemente selecciono 'desactivar caché'. Funciona bien.
No puedo decírselo a todos los usuarios de mi sitio web, así que tengo una mejor solución para todos. –
Esto es solo para la depuración. No es necesario que informe a todos los usuarios de su sitio web, sino que también rompe la implementación de caché para el resto de sus usuarios. – ChadT
Bueno, no queremos el almacenamiento en caché de la versión anterior cuando lanzamos una nueva versión, no hay posibilidad de romperla. –
tratar de añadir a la página que aloja la aplicación Silverlight en Load:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-100));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Ctrl + F5 es una manera fácil de actualizar una página y borrar la caché de la página, al mismo tiempo - que puede ayudar :)
Firefox 3.5 en Herramientas tiene la opción de navegación privada. Haga clic para deshabilitar el almacenamiento en caché.
Añada una cadena de consulta "versión" a su XAP Url, algo así como:
http://localhost:1234/ClientBin/my_silverlight_app.xap?v=1.0.287.5361
Esto engañar al navegador (y muchos servidores web) para pensar que se trata de un archivo diferente. Y cuando el problema de caché aparece nuevamente, aumente el número.
Si desea utilizar el almacenamiento en caché adecuado, hágalo en el lado del servidor con las directivas OutputCache.
Así es como lo he hecho para flex/flash y silverlight y funciona.
Código Detrás de ASPX o 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 o CSHTML
<embed ....
src="<%= slUrl %>"
..
/>
truco es que hay que cambiar la URL añadiendo algo después de ?
y hacer una nueva cadena de consulta aleatoria arbitraria o use el tiempo de escritura del archivo, y para el navegador, something?t=1
y something?t=2
son dos direcciones URL y no se incluirá en el caché si t cambios.
En lugar de escribir el tiempo, también puede elegir cualquier valor de configuración estándar o incluso simplemente codificar su ASPX o HTML y agregar algo después de ?
que obligará a los navegadores a descargar el archivo xap de Silverlight nuevamente.
<embed ....
src="/ClientBin/MySilverlight.xap?something-different-each-time"
...
/>
- 1. Cómo ver una DataTable mientras se depura
- 2. Cómo evitar que Visual Studio inicie WcfSvcHost.exe mientras se depura?
- 3. Evite que Ruby on Rails 3 analice la publicación JSON
- 4. ¿Cómo evitar ingresar archivos fuente de la biblioteca mientras se depura en Qt Creator con gdb?
- 5. asp.net - ¿Mantiene la sesión mientras depura y reconstruye la solución?
- 6. Visual Studio: edite xaml mientras depura (sin detener la depuración)
- 7. Alternar animación lenta mientras se depura con el dispositivo iOS
- 8. Silverlight 3 y gif animado
- 9. Silverlight 3 alternativa a FileVersionInfo.GetVersionInfo
- 10. Cómo imprimir la cadena a la que apunta un puntero mientras se depura usando gdb?
- 11. Evite la compresión de video mientras selecciona video usando uiimagepickercontroller
- 12. ¿Silverlight 3 cambia la pregunta MVC vs. Silverlight?
- 13. Evite que un cuadro de texto de solo lectura aparezca atenuado en Silverlight
- 14. Evite que el servidor proxy almacene en memoria de caché Silverlight xap
- 15. Evite que XmlTextReader expanda entidades
- 16. Evite que Android cierre la pantalla mientras la aplicación (con Phonegap) está en
- 17. Evite que Javascript se ejecute dos veces
- 18. Java hacer, mientras que, mientras
- 19. Silverlight 3 - Fuera del navegador HtmlPage.Window.Navigate
- 20. C# Silverlight 3 - Navega programáticamente entre páginas?
- 21. Silverlight 3 comportamiento diferente entre los navegadores
- 22. ¿Cómo se depura una XamlParseException?
- 23. Evite que se envíe spam a MediaWiki
- 24. Evite que JSON pretty_generate escape Unicode
- 25. Evite que la IU se congele sin hilos adicionales
- 26. Los comandos SOS fallan mientras se depura en vivo un proceso que tiene múltiples versiones de CLR cargadas
- 27. ¿Puedo personalizar el valor de intellisense que se muestra cuando se desplaza mientras se depura en Visual Studio?
- 28. ¿Cómo puedo modificar un valor de variable mientras se depura en IntelliJ, para que los relojes respectivos se actualicen automáticamente?
- 29. "mientras que" frente a "mientras que la verdadera"
- 30. es si() {} {hacerlo, mientras que();} exactamente igual, mientras que {}
¿Cómo estás depuración, ejecución en Visual Studio? ¿Tiene un sitio web de prueba en la solución? ¿En qué navegador estás alojando SL? – AnthonyWJones
Hola, ¿este micrófono está encendido? ... Tiene 4 votos ascendentes sobre esta pregunta, pero no ha respondido a mis preguntas anteriores ni ha respondido a ninguno de los que se han tomado la molestia de intentar responder su pregunta. – AnthonyWJones