MVC4 WebAPI не сжимает ответы GET

Я работаю над проектом, который использует MVC4 WebAPI (RC). Ответы не сжаты gzip (динамическое сжатие в IIS включено).

Отклики от обычных контроллеров MVC сжимаются. Нужен ли мне конкретный параметр для включения сжатия gzip для ответов WebAPI?

Я мог бы добавить собственный обработчик сжатия, но, если это возможно, я просто хотел бы использовать встроенное сжатие IIS.

Кстати, я знаю, что это почти дубликат Сжатие HTTP GET Response, однако принятый ответ там действительно не отвечает на мой вопрос.

Ответ 1

Разрешено ли динамическое сжатие для mimetype application/json; charset=utf-8? По умолчанию это не включено, даже если включено динамическое сжатие.

Чтобы узнать, включено ли это, вы можете посмотреть в applicationhost.config файле в разделе %windir%\System32\inetsrv\config в разделе.

Вы не должны редактировать файл, вместо этого используйте appcmd.exe, чтобы изменить его следующим образом: fooobar.com/questions/95296/...

Ответ 2

На самом деле вы можете установить пакет nuget для этого, для этого требуется небольшая настройка, на стороне клиента вам просто нужно добавить accept-encoding: gzip.

Использование этого подхода лучше в наши дни, когда ASP.Net может работать на любом веб-сервере.

В этом видео у меня есть полное/полное объяснение WebApi с использованием сжатия gzip. На испанском языке, но вы знаете, что "Код является универсальным языком"

NinjaTip # 16 | Incluyendo soporte para GZip en WebAPI | С# NinjaTip #16 | Incluyendo soporte para GZip en WebAPI