How can I get gzip compression in IIS7 working?

There was a thread on forums.iis.net about this during the iis 7 beta. Turned out the guy didn’t have the modules installed, but it sounds like you’ve ruled that out from your opening sentence.

Microsofts key advice for him was to enable failed request tracing to find out what was going wrong. This is possibly one of the most under-appreciated features of IIS7, but certainly one of the most powerful.

  • Open IIS Manager.
  • Go to your site, and on the actions pane (the very far right), click ‘Failed Request Tracing…’ under the ‘Configure’ section.
  • Click ‘enable’.
  • Then, in the features view, click ‘Failed request tracing rules’. Click add, next, enter 200 for the status code, next, click finish.

If you don’t see “Failed Request Tracing” in the actions pane, you’ll need to add the feature to the server – either using the “Add Role Services” wizard (Health and Diagnostics\Tracing) or through the Web Platform Installer (Products\Server\IIS: Tracing), and then close and re-open IIS Manager.

Next, rerun your test. This will generate some log info for us to examine.

Look in c:\inetpub\logs\FailedReqLogFiles\w3svcx. You will see a bunch of files named fr000xx.xml. Open up any one of them in your browser. (By the way, if you copy these files anywhere, make sure freb.xsl is there. Also, don’t delete freb.xsl – if you do, just delete the whole directory or copy it from another location, as IIS only creates it once per folder.)

Click the ‘request details’ tab and select ‘complete request trace’. Search the page for ‘compress’ – you should find it in several areas; once for static content, and once for dynamic content.

If you don’t find either of them, IIS isn’t configured correctly. If you do find them, you should see them followed by a compression_success and a compression_do. Success is self explanatory; the ‘do’ indicates what it did – in my case, it showed “OriginalSize 1462784 CompressedSize 179482”

Since yours isn’t working, hopefully you will see something different that helps you solve the problem.

Make sure you turn this off when you’re done by disabling failed request tracing in the actions pane for your website.

Leave a Comment