10

Sto lavorando a un progetto che utilizza MVC4 WebAPI (RC). Le risposte non sono compresse con gzip (la compressione dinamica in IIS è abilitata).MVC4 WebAPI non comprime le risposte GET

Le risposte dai normali controller MVC sono compresse. Ho bisogno di un'impostazione specifica per abilitare la compressione gzip per le risposte WebAPI?

Potrei aggiungere un gestore di compressione personalizzato, ma se possibile, vorrei solo utilizzare la compressione IIS integrata.

BTW, so che questo è quasi un duplicato di Compress HTTP GET Response, tuttavia la risposta accettata non risponde veramente alla mia domanda.

+0

è la compressione dinamica abilitata per tipo MIME 'application/json; charset = utf-8' ? Di default questo non è abilitato anche se è abilitata la compressione dinamica –

+0

@EivindT come posso verificarlo? – Carvellis

+0

È possibile cercare nel file applicationhost.config in% windir% \ System32 \ inetsrv \ config nella sezione . Non dovresti modificare il file, usa invece appcmd.exe per modificarlo in questo modo: http://stackoverflow.com/a/7375645/243936 –

risposta

11

La compressione dinamica è abilitata per il tipo application/json; charset=utf-8? Di default questo non è abilitato anche se la compressione dinamica è abilitata.

Per verificare se è abilitato, è possibile cercare il file applicationhost.config nella sezione %windir%\System32\inetsrv\config.

Si consiglia di non modificare il file, utilizzare invece appcmd.exe per cambiare in questo modo: https://stackoverflow.com/a/7375645/243936

+1

Non ho avuto problemi nel modificare manualmente il file applicationhost.config utilizzando il blocco note. Tutto ciò che devi aggiungere è una riga alla sezione httpCompression -> dynamicTypes: ''. Vedi questo link per maggiori dettagli: http://benfoster.io/blog/aspnet-web-api-compression Una volta fatto ciò, le mie risposte web API sono state compressi con gzip. –

0

In realtà si può installare un pacchetto NuGet per conseguire tale, questo richiede configurazione poco, nel lato client è sufficiente aggiungere il Accept-encoding: gzip.

L'utilizzo di questo approccio è migliore in questi giorni in cui ASP.Net è in grado di essere eseguito su qualsiasi server Web.

In questo video ho una spiegazione completa/completa di WebApi utilizzando la compressione gzip. È in spagnolo, ma si sa "Codice è un linguaggio universale"

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