Temos algumas chamadas AJAX bastante longas em nosso aplicativo, algumas das quais transmitem mais de 100 mil de dados em uma rede criptografada bastante lenta. Gostaria de ativar a compactação G-Zip em application/json
para acelerar um pouco isso. No entanto, estou tendo um momento difícil! Primeiro, observe que o servidor definitivamente suporta isso. application/javascript
e text/*
compactam bem. A primeira coisa que tentei foi adicionar o seguinte a web.config
na seção <system.webServer>
:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/json" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
Isso não teve efeito. Eu até habilitei "*/*"
em tudo para testar.
Em seguida, desenterrei o arquivo applicationHost.config
todo poderoso. Isso teve:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
Que eu mudei para:
<section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" />
Ainda não vai. Eu fiz um iisreset
apenas para garantir que a nova configuração entraria em vigor.
Por fim, editei a seção <httpCompression>
real em applicationHost.config
e adicionei manualmente em:
<add mimeType="application/json" enabled="true" />
Bem, isso realmente funcionou! No entanto, acho que é um pouco hacky modificar o applicationHost.config
quando prefiro apenas ativar isso para um único aplicativo da web. O que estou fazendo errado e por que não posso substituir isso em web.config
? Obrigado!