HttpContext.RewritePath unterbricht die Erstellung von IIS-GZIP

Hallo.

ich benutzeHttpContext.RewritePath um die Anfrage je nach Anfrage und Host an interne Site-Ordner weiterzuleiten.

Problem: Wenn ich eine Anfrage tue, für die RewritePath für eine statische Datei erforderlich ist, die von IIS zwischengespeichert und GZIPped wird, erhalte ich als Antwort den ursprünglichen nicht komprimierten Dateiinhalt mitContent-Encoding: gzip Header, der zum Fehler "Inhaltsdecodierung fehlgeschlagen" führt. Aber wenn ich die gleiche Anfrage mache, aber mit vollem Verzeichnispfad (in diesem Fall wird RewritePath in meinem Code übersprungen), bekomme ich richtig gezippten Inhalt mitContent-Encoding: gzip.


Z.B.:
Situation mit Fehler:
URL anfordern:localhost/lib/ext_3.4.0/resources/css/ext-all.css
Der Anforderungspfad wird mit HttpContext.RewritePath umgeschrieben, um:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css

Die erste Antwort ist nicht gezippt - übliches IIS-Verhalten. Wenn ich Strg + F5 drücke, wird der Fehler "Inhaltsdecodierung fehlgeschlagen" angezeigt. Wenn ich Fiddler2 benutze, kann ich sehen, dass der Inhalt der Antwort nicht komprimiert ist und enthältContent-Encoding: gzip Header.

Situation ohne Fehler:
URL anfordern:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css
Der Anforderungspfad wird nicht neu geschrieben, da er nicht benötigt wird.

Die erste Antwort wird nicht erneut gezippt. Wenn ich Strg + F5 drücke, erhalte ich normalen Dateiinhalt. Durch die Verwendung von Fiddler2 kann ich feststellen, dass der Antwortinhalt gezippt ist, die Größe 5-mal geringer ist und enthältContent-Encoding: gzip Header.


Ich kann RewritePath nicht wegwerfen und brauche IIS gzip. Gibt es eine Möglichkeit, Freunde zu finden?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage