I want to compress responses coming from my IIS Express driven web application. We're using IIS Express as local development webserver and IIS on staging and on our build machines. I have found many guides on enabling gzipped responses on IIS but none for IIS Express. Is it even possible?
GZip Compression can be enabled directly through IIS. So we go to the “Turn Windows features on or off” and select “Dynamic Content Compression” and click the OK button.
IIS ships a default compression scheme provider gzip. dll: That supports both Gzip and Deflate compression. Is registered as the gzip scheme in applicationHost.
You can enable compression in IIS Express, just like for IIS.
Start command prompt and go to IIS Express installation folder (%PROGRAMFILES%\IIS Express
)
Run following command
appcmd set config -section:urlCompression /doDynamicCompression:true
To add compression for JSON run the following two commands from the IIS Express installation directory:
appcmd set config /section:staticContent /+[fileExtension='.json',mimeType='application/json']
appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost
Make sure to restart IIS Express.
For Visual Studio 2019 I found the above does not work, as the applicationhost.config
file is unique to the project. This file is stored in .vs\<solution_name>\config\applicationhost.config
. For VS 2017 it isnt in the solution subfolder.
Thus the solution for me was to replace <httpCompression/>
with the following.
<httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/json" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/atom+xml" enabled="true" /> <add mimeType="application/xaml+xml" enabled="true" /> <add mimeType="image/svg+xml" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With