martedì 17 aprile 2012 #

Abilitare la compressione GZip su di una response WCF Ria Services

Avendo la necessità di diminuire il peso del traffico di dati utilizzando i Ria Services e migliorarne cosi le performance ,abbiamo la possibilità di abilitare la compressione del traffico HTTP . Su IIS7 e versioni successive lo scenario può essere abilitato facilmente senza l'installazione di plugin di terze parti .

In Windows Vista o Windows 7  è possibile procedere all'installazione cosi

Dal pannello di controllo selezioniamo la voce " Programs and features " e poi "Turn Windows Features on or off " .

A questo punto sulla lista delle features windows abilitiamo le voci “Dynamic Content Compression” e “Static Content Compression” presenti in “Internet Information Services->World Wide Webservices->Performance Features "

 
Su Windows Server 2008/2008 R2 invece dopo aver aggiunto il ruolo "Dynamic Content Compression " se non presente , basterà navigare tramite IIS manager nel sito di interesse o sull'intero server selezionare la voce Compression tra le opzioni e selezionare le voci “Dynamic Content Compression” e “Static Content Compression” .

Per maggiori e dettagliate informazioni sull'abilitazione delle rispettive opzioni su Windows 7 e Windows Server 2008/R2 è possibile far riferimento alla guida di su iis.net http://www.iis.net/ConfigReference/system.webServer/httpCompression

Una volta che le opzioni sono state abilitate tutte le normai richieste HTTP sarannò compresse utilizzando GZip . Per poter abilitare questa feature sulle nostre applicazioni che fanno uso dei Ria services è necessario  aggiungere il mime-type  alla lista di mime che devono essere compressi , in questo caso " application/msbin1 " . Per fare questo apriamo il prompt dei comandi "cmd.exe" (Come amministratori)

Navighiamo nella cartella Inetsrv presente in c:\windows\System32
CD C:\Windows\system32\Inetsrv\
Eseguiamo il seguente comando
appcmd.exe set config -section:system.webServer/httpCompression /+”dynamicTypes.mimeType='application/msbin1',enabled='True']” /commit:apphost

Questo aggiungerà una nuova entry al file Windows\System32\Inetsrv\Config\applicationHost.config .

Basterà adesso riavviare IIS per rendere effettive le modifiche . Per poterne controllare il corretto funzionamento è ovviamente possibile utilizzare Fiddler . A questo punto una normale richiesta prima dell'apportazione della modifica era cosi

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 583
Content-Type: application/msbin1
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 16 Apr 2012 23:20:41 GMT

Ora

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/msbin1
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 16 Apr 2012 23:20:41 GMT
Content-Length: 336

 Alla prossima

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (2438)