Вопрос по gzip – HttpContext.RewritePath ломает встроенный GISIP IIS

5

Привет.

я используюHttpContext.RewritePath направить запрос на внутренние папки сайта в зависимости от запроса и хоста.

Проблема: Когда я делаю любой запрос, который требует RewritePath для любого статического файла, который кэшируется и GZIPped IIS, я получаю в ответ исходное несжатое содержимое файла сContent-Encoding: gzip заголовок, который приводит к & # x201C; Ошибка декодирования контента & # x201D; ошибка. Но когда я делаю тот же запрос, но с полным путем к каталогу (в этом случае RewritePath пропускается в моем коде), я получаю правильно сжатый контент сContent-Encoding: gzip.


Например.:
Ситуация с ошибкой:
URL запроса:localhost/lib/ext_3.4.0/resources/css/ext-all.css
Путь запроса переписывается с использованием HttpContext.RewritePath для:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css

Первый ответ не распакован - обычное поведение IIS. Когда я нажимаю Ctrl + F5, я получаю & # x201C; Декодирование содержимого завершилось неудачей & # x201D; ошибка. Используя Fiddler2, я вижу, что содержимое ответа не распаковывается и содержитContent-Encoding: gzip заголовок.

Ситуация без ошибок:
URL запроса:localhost/_sites/mainSite/lib/ext_3.4.0/resources/css/ext-all.css
Путь запроса не переписывается, потому что он не нужен.

Первый ответ не отправляется снова. Когда я нажимаю Ctrl + F5, я получаю нормальное содержимое файла. Используя Fiddler2, я вижу, что содержимое ответа сжато, размер в 5 раз меньше и содержитContent-Encoding: gzip заголовок.


Я не могу выбросить RewritePath, и мне нужен GISIP IIS. Есть ли способ сделать их друзьями?

Вы нашли решение этой проблемы? У нас та же проблема, что и у вас, то есть перезапись пути статического файла, и это заставляет IIS отправлять файл без сжатия, пока он должен был быть сжат. sboisse

Ваш Ответ

0   ответов

Похожие вопросы