Depois de muita pesquisa, finalmente encontrei o que a compactação estava fazendo no meu IIS 7.5.
Para começar, o IIS não irá compactar um arquivo, a menos que seja carregado com freqüência suficiente. Isso levanta a questão "o que o IIS considera com frequência suficiente?" Bem, os padrões são 2 vezes a cada 10 segundos. Caramba!
Essa configuração pode ser alterada no web.config, mas a seção precisa ser desbloqueada primeiro no applicationHost.config. Aqui estão os comandos:
Primeiro desbloqueie a seção:
C:\Windows\System32\inetsrv\appcmd.exe unlock config
/section:system.webServer/serverRuntime
Unlocked section "system.webServer/serverRuntime" at configuration path "MACHINE/WEBROOT/APPHOST".
Agora pronto, edite o arquivo web.config e adicione o elemento serverRuntime:
<?xml version="1.0" encoding="UTF-8"?> <configuration>
<system.webServer>
<serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="10:00:00" />
...
Neste caso, configurei-o para acertar o arquivo uma vez em um período de 10 horas. Você pode ajustar os valores conforme necessário. Aqui está o documento que explica o elemento serverRuntime:
link
Espero que isso ajude a sua compactação a funcionar também.
Observação: você também pode definir o elemento serverRuntime no arquivo applicationHost.config, mas optei por alterá-lo no web.config porque temos vários servidores e farms com vários sites, e é mais fácil para mim controlá-lo a partir desse nível de granularidade.