I have come across few issues on HTTP Compression in IIS 6 and thought I will quickly post it across for everyone’s benefit.
Enterprises prefer to compress their Static and Dynamic web content to save bandwidth. There are articles on how to enable compression and frankly it’s pretty simple. Here is the UI for enabling Compression in IIS 6 and IIS 7:
The article works fine for default IIS 6 configuration. But as soon as you make some change like using a Service Account (Domain Account) for Application Pool the compression fails.
How do I check if compression is working?, well download a Web Debugger like Fiddler.
Let us walk through the process.
I have a website using DefaultAppPool and the AppPool is configured to use the Domain Account (CORP\w2k3service).
I have added CORP\w2k3service in the IIS_WPG group.
I am browsing my website as http://w2k3website.corp.contoso.com and the URL is a Host(A) Record entry in DNS.
I have added the HTTP SPN for the Service Account (CORP\w2k3service)
I browse the website and it works just fine.
I enable HTTP Compression as mentioned in the article above and to verify I ran Fiddler. Here is what I see
For the request http://w2k3website.corp.contoso.com, Fiddler shows HTTP Compression as “No Compression” odd isn’t it.
Let us check Metabase.xml
Looks good to me.
Now, follow the steps when you have AppPool using Service Account.
Let us verify with Fiddler again
Good thing here is we don’t have to worry about the Service Account Permission in IIS 7.
Chao for now.
Why I am not able to see compressed files in my temp folder?
Did you verify using the above steps if compression is successful? You can see the compressed files (if .htm, .aspx or .css file is compressed and accessed) in the "%windir%\IIS Temporary Compressed Files" folder