GZip response on IIS Express

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?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You can enable compression in IIS Express, just like for IIS.

  1. Start command prompt and go to IIS Express installation folder (%PROGRAMFILES%IIS Express)
  2. 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.

Method 2

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>configapplicationhost.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%iisexpressIIS 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>


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x