2009-07-23 5 views
1

Also ... Ich habe einen http-Handler, der Dokumente dient. Die Antwort contentType ist korrekt gesetzt, aber die URL des Handlers hat keine Erweiterung, d. H. Pdf.Internet Explorer und Serving-Dateien mit asp.net httphandlers

Es sieht wie folgt aus:

http://mysite/handler.ashx?id=123&locale=123

Wenn ich diese URL in Firefox/Chrom besuchen usw. (dh die anständigen Browser) alles gut ist (der Browser korrekt ein Plugin (wie Acrobat Reader wählt) um die Datei im Browser zu rendern).

Wenn ich diese URL im Internet Explorer 7 besuche, ist das erste Mal alles in Ordnung. Wenn ich auf Aktualisieren klicke oder die URL erneut öffne, ohne den Browser zu schließen, bekomme ich einen Dialog, der fragt "Willst du diese Datei öffnen oder speichern" !!!! Wenn ich auf "Öffnen" klicke, passiert nichts!

Weiter habe ich eine Umleitung Seite ... so dass ich besuchen

http://mysite/redirectto.aspx?id=123&locale=123

Diese Seite nur Umleitungen auf die ursprüngliche URL und immer noch Probleme erwähnen oben aufgetreten.

Nicht das gleiche Problem tritt auf, wo immer ein Plugin benötigt wird, um die Datei zu rendern, d. H. Tiff-Dateien mit Alternatiff, PDF mit Acrobat-Reader - sie haben alle genau das gleiche Problem!

Ideen?

+0

ich wirklich mag, dass Ihre HTTP-Response-Header, um zu sehen (sie greifen mit Fiddler2 oder ähnlichem). Wenn Sie wirklich den richtigen Inhaltstyp senden, würde ich dieses Problem nicht erwarten. – EricLaw

Antwort

1

so ...

habe ich eine Zwischenseite, die einen iframe enthält gestylt die Seite zu füllen. Der iframe zeigt auf den httphandler. heißt

Dies löst das Problem für Internet Explorer.

Entscheidend Diese Lösung erfordert keine zusätzliche Konfiguration :)

1

Ich habe etwas Ähnliches getan, leider war es letztes Jahr, und ich bin nicht mehr im selben Campany, um meinen Code zu referenzieren, um eine vollständige Lösung zu geben. Was wir letztendlich gemacht haben, war die Verwendung einer URL, die für ein PDF gedacht war, aber ein HTTP-Modul hatte, das diese Anfragen aufnahm und mit ihnen wie gewünscht umging.

Edit - wenn ich http-Modul sage, könnte es ein http-Handler oder etwas gewesen sein. Wie ich schon sagte, es war vor einer Weile. Der allgemeine Punkt ist, dass es Code war, der ausgelöst wurde, als die Anfrage beim Server einging, bevor er direkt auf eine Seite kam, also wurde unsere something.pdf entdeckt und die Daten wurden zurückgeworfen und es schien so als ob es war Lesen eines statischen PDFs vom Server.