IIS 7.5 ignorando as configurações do HttpCompression no web.config

8

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.

    
por Ben 11.09.2012 / 11:55

2 respostas

3

Tente também adicionar o tipo mime:

 <add mimeType="application/json; charset=utf-8" enabled="true" />
    
por 01.11.2012 / 10:07
1

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

    
por 30.10.2015 / 11:08