Grundsätzliche AnforderungenWie Setup Silverlight XAP-Caching das gleiche in allen Browsern
ich arbeiten muss eine SL-Anwendung, die im Browser oder Out-of-Browser ausgeführt werden kann. Ich möchte den Browser:
- Cache der XAP-Datei
- laden xap aus dem Cache, wenn er sich nicht geändert hat oder erneut herunterladen, wenn sie sich geändert hat.
Mehr Details
eine Zukunft expires
Header Einstellung löst offensichtlich das Caching Problem, aber dann kann ich nicht zwingen den Benutzer die neueste Version herunterzuladen. Normalerweise würde ich nur eine Querystring zur URL hinzufügen (zB url?v=1
), aber ich kann dies nicht tun, da dies die Out-of-Browser-Funktionalität bricht. zB denkt die App, dass sie nicht installiert ist, obwohl sie tatsächlich installiert ist.
kein Cache
Wenn ich Cache-Control
-no-cache
, Chrome und Firefox korrekt eine Anfrage an den Server für den xap senden, aber den Cache verwenden gesetzt, wenn ein 304 zurückgeführt wird. IE8 lädt die Datei einfach erneut herunter, genau wie Safari.
Must-revalidate
Einstellung Cache-Control
-must-revalidate
wieder richtig in Chrome und Firefox funktioniert, aber Safari lädt immer die xap wieder während IE8 immer den Cache verwendet.
Wie richte ich das ein, wie am Anfang dieser Frage beschrieben?
danke, das ist der Trick für IE getan. Safari lädt es immer vom Server neu, aber ich kann damit leben. Ich habe kein Problem mit der Aktualisierung der OOB, aber Installationsstatus wird in der In-Browser-App falsch erkannt, wenn Sie die URL ändern (zB um eine Installationsschaltfläche anzuzeigen) –
tatsächlich Caching in Safari auf dem Mac funktioniert . Es ist nur auf Windows, wo es nicht und wir alle wissen, dass niemand Safari unter Windows verwendet :). Also Problem gelöst. Danke noch einmal. –