10

Estoy trabajando en un proyecto que usa MVC4 WebAPI (RC). Las respuestas no están comprimidas gzip (la compresión dinámica en IIS está habilitada).MVC4 WebAPI no comprime las respuestas GET

Las respuestas de los controladores MVC normales están comprimidas. ¿Necesito una configuración específica para habilitar la compresión gzip para las respuestas de WebAPI?

Podría agregar un controlador de compresión personalizado, pero si es posible, solo me gustaría usar la compresión IIS integrada.

Por cierto, sé que esto es casi un duplicado de Compress HTTP GET Response, sin embargo, la respuesta aceptada no responde realmente a mi pregunta.

+0

es la compresión dinámica habilitado tipo MIME 'application/json; charset = utf-8 '? De manera predeterminada, esto no está habilitado, incluso si la compresión dinámica está habilitada –

+0

@EivindT ¿cómo puedo verificar eso? – Carvellis

+0

Puede buscar en el archivo applicationhost.config en% windir% \ System32 \ inetsrv \ config en la sección . No debe editar el archivo, en su lugar use appcmd.exe para cambiarlo de esta manera: http://stackoverflow.com/a/7375645/243936 –

Respuesta

11

¿Está habilitada la compresión dinámica para el tipo de mimet application/json; charset=utf-8? De manera predeterminada, esto no está habilitado, incluso si la compresión dinámica está habilitada.

Para ver si está habilitado, puede buscar en el archivo applicationhost.config bajo %windir%\System32\inetsrv\config en la sección.

No debería editar el archivo, en lugar de utilizar appcmd.exe para cambiar de esta manera: https://stackoverflow.com/a/7375645/243936

+1

No tuve problemas para editar manualmente el archivo applicationhost.config usando el bloc de notas. Todo lo que necesita agregar es una línea a la sección httpCompression -> dynamicTypes: ''. Vea este enlace para más detalles: http://benfoster.io/blog/aspnet-web-api-compression Una vez que hice eso, mis respuestas de la API web fueron comprimidas. –

0

En realidad se puede instalar un paquete Nuget para lograr eso, esto requiere poca configuración, en el lado del cliente sólo tiene que añadir el aceptar-codificación: gzip.

El uso de este enfoque es mejor en la actualidad cuando ASP.Net puede ejecutarse en cualquier servidor web.

En este video tengo una explicación completa/completa de WebApi usando compresión gzip. Está en español, pero sabes "Código es un lenguaje universal"

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