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]()