Tengo un control Silverlight empaquetado e implementado en un elemento web de SharePoint. Estoy teniendo problemas con el navegador cargando nuevas versiones del control después de presionar una actualización. Estoy actualizando el ensamblado y la versión de archivo de mi proyecto xap, pero no parece importar. La única forma de que el navegador cargue el nuevo xap es ir y eliminar los archivos temporales de Internet. Para mí, durante el desarrollo, está bien, pero tendré que buscar una solución antes de que llegue el momento de la producción. ¿Algunas ideas?Obligar a los navegadores a volver a cargar Silverlight xap después de una actualización
Respuesta
Esto tiene que ver con la forma en que su navegador maneja las solicitudes de recursos. Flash tiene problemas similares y hay un par de soluciones.
Aquí hay un article que detalla el problema y las posibles soluciones.
Yo sugeriría hacer algo como esto:
Digamos que tiene esto para su XAP en su html:
<param name="source" value="ClientBin/myApp.xap"/>
lo haría versión que lo que cada vez que haces un empuje cambia el número de versión. Ejemplo:
<param name="source" value="ClientBin/myApp.xap?ver=1"/>
¡Estupendo! Funcionó incluso en el desarrollo de Windows Phone.
He puesto la línea:
NavigationService.Navigate(new Uri("/Game.xaml?versao="+version, UriKind.RelativeOrAbsolute));
Y luego reemplazar el método OnNavigatedTo
:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string var;
if (NavigationContext.QueryString.TryGetValue("version", out var))
{
...
}
}
t no es muy raro encontrarse con el almacenamiento en caché .xap, lo que significa que cada vez que se despliegue una nueva versión de la aplicación Silverlight, el navegador no descarga el archivo .XAP actualizado.
Una solución podría ser cambiar las propiedades de IIS. Se puede activar la opción “Activar cabecera HTTP contenido de caducidad” en su archivo .xap siguiendo estos pasos:
Open IIS Manager
Go to “Default Web Site” and find web site for your Silverlight project.
Find the .XAP file under ClientBin.
Go to the properties page of the .XAP file, on HTTP Headers Tab, Turn on “Enable Content Expiration”, click the “Expire Immediately” radio button.
Save the changes.
De esta manera la última .xap (sólo si hay un archivo .xap última) obtendrán descargado cuando actualiza su página sin tener que cerrar el navegador.
Espero que esto ayude!
ponga la siguiente web.config en ClientBin
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMaxAge="0.00:00:01" cacheControlMode="UseMaxAge"/>
</staticContent>
</system.webServer>
</configuration>
- 1. Obligar a ConfigurationManager a volver a cargar todas las secciones
- 2. Detener navegadores solicitando volver a enviar los datos del formulario en la actualización?
- 3. ¿Cómo forzo a ActiveRecord a volver a cargar una clase?
- 4. ¿Puedo obligar a los navegadores web a enviar texto de formulario como UTF8?
- 5. ¿Volver a cargar una sola fila jqGrid?
- 6. ¿Hay alguna manera de obligar a los navegadores a actualizar/descargar imágenes?
- 7. ¿Cómo accedo a un archivo Silverlight XAP en un dominio?
- 8. ¿Cómo volver a cargar gdbinit?
- 9. ¿Cómo volver a cargar TreeStore?
- 10. ¿Volver a cargar hojas de estilo CSS sin volver a cargar la página?
- 11. ¿Cómo forzar a un script a volver a cargar y volver a ejecutar?
- 12. cómo volver a cargar solo scripts a través de firebug
- 13. ¿Cómo puedo obligar a los navegadores a que vuelvan a cargar los archivos CSS almacenados en caché cuando utilizan Asp.Net Themes?
- 14. ¿Hay alguna manera de obligar a Firefox a volver a mostrar un título/información sobre herramientas?
- 15. ¿Cómo volver a cargar un div sin volver a cargar toda la página?
- 16. ¿Volver a cargar rubygems en irb?
- 17. Actualización de Silverlight 4 a Silverlight 5 causando AccessViolationException
- 18. Cómo forzar a tomcat a volver a cargar los archivos de clase/guerra compilados recientemente
- 19. Actualizar (volver a cargar) una página usando jQuery?
- 20. Forzar archivo CSS para volver a cargar después del evento jquery
- 21. ¿Cómo volver a cargar los módulos en django shell?
- 22. Actualizar/volver a cargar Flot en Javascript
- 23. Obligar a los usuarios a cerrar sesión en Devise
- 24. GUI no funciona después de volver a escribir a MVC
- 25. actualizar o volver a cargar la tabla de datos
- 26. ¿Cómo obligo a Django a ignorar cualquier caché y volver a cargar datos?
- 27. Obligar a un UIView a volver a dibujar inmediatamente, en lugar de durante el siguiente ciclo de ejecución
- 28. ¿Cómo puedo obligar a GDB a desmontar?
- 29. Obligar a linq a realizar uniones internas
- 30. Cómo volver a cargar una página JSF desde un ValueChangeEvent?
¿Eso valor asociado a la versión de montaje (es decir, 1.0.0.0)? –
@Chris no, está completamente inventado. Puede poner cualquier cosa allí, siempre que lo cambie siempre que desee enviar los cambios al cliente. La mejor práctica, sin embargo, es mantenerla en línea con su versión. – Joseph
Eso lo hizo, gracias por la sugerencia. –