Tente também adicionar o tipo mime:
<add mimeType="application/json; charset=utf-8" enabled="true" />
Estou tentando ativar a compactação dinâmica para o tipo de mime application/json
.
No applicationHost.config, fiz a seguinte alteração:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />
Eu também tentei desbloquear a seção com o seguinte comando:
appcmd unlock config /section:system.webserver/httpcompression
Minhas configurações do web.config (igual ao applicationHost.config, mas com o tipo MIME adicional):
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
</httpCompression>
Mas a resposta não está sendo gzipada. Eu sei que as configurações estão corretas, pois funciona se eu adicionar o tipo MIME diretamente ao applicationHost.config.
Eu ativei o Rastreamento de Solicitações Falhadas e nenhum erro foi produzido.
Tente também adicionar o tipo mime:
<add mimeType="application/json; charset=utf-8" enabled="true" />
Estou com o mesmo problema, ou seja, tentando obter o IIS (IIS 10 no meu caso) para gzip application/json
, mas descobri uma solução alternativa.
Eu tentei editar o ApplicationHost.config, bem como o web.config sem sorte. O IIS simplesmente ignora as configurações de compactação dos dados .json. Ele vai alegremente gzip qualquer outro tipo de míeta que você diz que comprimir embora. Então eu mudei o tipo MIME para text/json
no web.config e agora eu tenho respostas válidas:
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="text/json" />
</staticContent>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/json" enabled="true"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/json" enabled="true"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
Claro que isso pode prejudicar outras coisas - porque agora sua resposta tem Content-Type:text/json
Tags compression gzip iis iis-7.5