Как отключить gzip только для одного обработчика .ashx - PullRequest
0 голосов
/ 15 сентября 2010

Я управляю веб-сайтом, использующим IIS6, и я написал простой общий обработчик, который возвращает меньшие изображения, когда он получает URL-адрес изображения в виде строки запроса. Моя проблема в том, что сервер применяет gzip к некоторым типам файлов, таким как .aspx и .ashx.
И это заставило мой ответный образ из обработчика отображаться с более низким качеством, потому что они сжаты.

Как я могу отключить gzip только для этого файла обработчика, я надеюсь, что решение без редактирования IIS.

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Этот SO ответ кажется почти таким же, как ваш сценарий.

В ответе эта ссылка обсуждается, как сделать папку на основе сценария сжатия / выключения.

Существует также эта ссылка , которая обсуждаетэто в нижней части статьи.

Вы сможете сделать это, отредактировав метабазу самостоятельно или с помощью adutils.vbs.

0 голосов
/ 07 июля 2017

Это сработало для меня - в методе ProcessRequest:

context.Request.Headers.Remove("Accept-Encoding")

Я предполагаю, что это заставляет IIS думать, что клиент не поддерживает GZip (или другие методы сжатия) и поэтому отправляет ответ без сжатия.

Да - это хак (как правило, вы не должны связываться с заголовками запросов), но это самое простое решение, которое я когда-либо видел.

Мне лично это нужно, потому что простой 5-символьный текстовый ответ на Ajax-вызов в конечном итоге был длиной 124 байта после GZip-сжатия.

Это отвечает названию этого вопроса. Однако для вашего сценария с изображениями - это действительно не должно иметь никакого значения, поскольку GZip без потерь (несжатые данные = оригинал).

...