How do I enable gzip compression when using MVC3 on IIS7?

imarkic84 picture imarkic84 · Aug 9, 2011 · Viewed 53k times · Source

Does anybody know how to enable gzip compression in MVC 3? I'm using IIS7.

Google Chrome Audit's result:

  1. Enable gzip compression (4)
  2. Compressing the following resources with gzip could reduce their transfer size by about two thirds (~92.23KB):
  3. /mydomain/ could save ~1.53KB
  4. jquery-1.4.4.min.js could save ~51.35KB
  5. Cufon.js could save ~11.89KB
  6. Futura.js could save ~27.46KB

Answer

Rob picture Rob · Aug 9, 2011

You can configure compression through your web.config file as follows:

<system.webServer>
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>

You can find documentation of this configuration element at iis.net/ConfigReference. This is the equivalent of:

  1. Opening Internet Information Services (IIS Manager)
  2. Navigating through the tree-view on the left until you reach the virtual directory you wish to modify
  3. Selecting the appropriate virtual directory so that the title of the right-hand pane becomes the name of said virtual directory.
  4. Choosing "Compression" under "IIS" in the right-hand pane
  5. Ticking both options and choosing "Apply" under "Actions" on the far right.

Note: (As pointed out in the comments) You need to ensure that Http Dynamic Compression is installed otherwise setting doDynamicCompression="true" will not have any effect. The quickest way to do this is:

  1. Start > Type optionalfeatures (this is the quickest way to get to the "Turn Windows Features on or off" window)
  2. Navigate to Internet Information Services > World Wide Web Services > Performance Features in the "Windows Features" treeview
  3. Ensure "Dynamic Content Compression" is ticked
  4. Click "Ok" and wait whilst Windows installs the component