Richtigen Weg zu haben ASP.NET / IIS NICHT-cache-PDF-Dateien
Habe ich das folgende Szenario, und ich wollte Vorschläge, was ist der beste Weg, dies zu behandeln. Meine web-app (ASP.NET 2.0 /IIS 6) erzeugt PDF-Dateien, und ich habe eine Ergebnisseite mit links zu den PDF-Dateien.
Jetzt bemerkte ich, dass, wenn ich besuchen Sie die Seite Ergebnisse, klicken Sie auf eine PDF-Datei (öffnet in einem neuen Fenster), dann re-generieren der PDF-Datei, und klicken Sie auf den gleichen link in der Ergebnisseite, die ALTE PDF angezeigt wird, anstatt der neuen. Ich hatte zum löschen von temporären internet-Dateien, um zu sehen, das neue.
So, da bin ich NICHT, das eine ASPX -, die schreibt eigentlich die PDF - (und ich möchte nicht den Speichern-dialog zu zeigen), aber gerade die Verlinkung zu der PDF-Datei, ich will wissen, was der beste Weg, um sicherzustellen, dass der Benutzer sieht immer die neueste Datei in dem server-und nicht eine zwischengespeicherte version.
Ich vermute hinzufügen no-cache-Header ist ausgeschlossen. Aber der PDF-Antrag würde immer noch gehen durch einen HTTP-handler, also ich würde gerne wissen, ob ich eine bestimmte HTTP-handler abfangen von Anfragen für PDF-Dateien, oder wenn ich muss dies tun auf IIS-Ebene...aber ich dont unbedingt vermeiden wollen caching ALLE PDF ' s auf dieser Website.
Irgendwelche Vorschläge? Vielen Dank im Voraus für die Hilfe.
- Dies ist ein bekanntes Problem mit Adobe Acrobat Reader und Internet Explorer. Auch wenn Sie fügen Sie die überschriften, die das IE-plugin wird immer noch Zwischenspeichern..
- wusste nicht, dass das ein bekanntes Problem, Michiel, vielen Dank für das lassen mich wissen. Da Sie offenbar bereits vertraut mit dem Problem, hast du irgendwelche links zu Artikeln Detaillierung/Bestätigung der Ausgabe? Vielleicht hilfreich für Leute mit ähnlichen Problemen für die links, die zur Verfügung stehen in der Frage.
- Ich löste dieses problem mit einer aspx-Seite, die dazu dient, meine PDF-Datei
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr den link zu dem pdf-Dokument hatte eine einzigartige querystring angehängt, ich glaube, dass würde verhindern, dass die Zwischenspeicherung. Die Zeit in ticks ist gut zu verwenden, zB:
Ich hatte gerade ein ähnliches Problem. Ich habe meine Seite ermöglicht dem Benutzer die Eingabe von Daten und Generierung von neuen pdf-Datei Speichern geklickt. Die neue pdf-Datei überschreibt die alte. Im IE8, wenn Benutzer klicken Sie auf den pdf-link nach dem Speichern, wird die alte pdf-Datei wird immer gezeigt (Benutzer muss den cache zu löschen um die Anzeige der neuen).
Nach Stunden des Suchens, fand ich, dass in IIS6, gehen Sie zu "Output Caching', fügen Sie einen neuen cache in der Regel mit Datei-Erweiterung".aspx', markieren Sie sowohl das "User-mode-caching' und 'Kernel-mode-caching", dann unter Optionen, wählen Sie "Zwischenspeicherung Verhindern'. Das ist für mich arbeiten!
Die Tatsache, dass die clearing Ihre temporären internet-Dateien gab Sie die neue version zeigt der browser die Quelle der cache. Sie könnten sich iis-caching ausschalten, aber das würde nicht aufhören, proxies, Zwischenspeichern des Dokuments. Wenn Sie brauchen, um zu 100% sicher sein, dass der Benutzer sieht, dass die neueste version, ich schlage vor, mit einem query-string-Wert zu verursachen, die url anders zu sein. Der query-string könnte die Generierung der pdf-Datei timestamp.