HttpContext.RewritePath łamie wbudowany gzip IIS

Dzień dobry.

ja używamHttpContext.RewritePath kierować żądania do wewnętrznych folderów witryny w zależności od żądania i hosta.

Problem: Kiedy wykonuję jakąkolwiek prośbę, która wymaga RewritePath dla dowolnego pliku statycznego, który jest buforowany i GZIP przez IIS, otrzymuję w odpowiedzi oryginalną nieskompresowaną zawartość pliku zContent-Encoding: gzip nagłówek, który prowadzi do błędu „Dekodowanie zawartości nie powiodło się”. Ale kiedy wykonuję tę samą prośbę, ale z pełną ścieżką do katalogu (w tym przypadku RewritePath jest pomijany w moim kodzie) otrzymuję prawidłową treść z gzipemContent-Encoding: gzip.


Na przykład.:
Sytuacja z błędem:
Żądaj adresu URL:localhost/lib/ext_3.4.0/resources/css/ext-all.css
Ścieżka żądania jest przepisywana przy użyciu HttpContext.RewritePath do:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css

Pierwsza odpowiedź nie jest gzipowana - zwykłe zachowanie IIS. Po naciśnięciu klawiszy Ctrl + F5 pojawia się błąd „Dekodowanie zawartości nie powiodło się”. Używając Fiddler2 widzę, że treść odpowiedzi nie jest spakowana i zawieraContent-Encoding: gzip nagłówek.

Sytuacja bez błędu:
Żądaj adresu URL:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css
Ścieżka żądania nie jest przepisywana, ponieważ nie jest potrzebna.

Pierwsza odpowiedź nie zostanie ponownie spakowana. Po naciśnięciu klawiszy Ctrl + F5 otrzymuję normalną zawartość pliku. Używając Fiddler2 widzę, że treść odpowiedzi jest gzipowana, rozmiar jest 5 razy mniejszy i zawieraContent-Encoding: gzip nagłówek.


Nie mogę wyrzucić RewritePath i potrzebuję gzip IIS. Czy jest jakiś sposób na uczynienie ich przyjaciółmi?

questionAnswers(0)

yourAnswerToTheQuestion