Мне трудно заставить IIS 7 правильно сжимать результат Json из ASP.NET MVC. Я включил статическое и динамическое сжатие в IIS. Я могу проверить с помощью Fiddler, что обычный текст / HTML и подобные записи сжимаются. При просмотре запроса присутствует gzip-заголовок accept-encoding. Ответ имеет mimetype "application / json", но не сжат.
Я определил, что проблема связана с MimeType. Когда я включаю mimeType="*/*"
, я вижу, что ответ правильно упакован. Как я могу получить IIS для сжатия без использования подстановочного знака mimeType? Я предполагаю, что эта проблема связана с тем, как ASP.NET MVC генерирует заголовки типов контента.
Загрузка ЦП значительно ниже порога динамического регулирования. Когда я проверяю журналы трассировки из IIS, я вижу, что он не сжимается из-за отсутствия подходящего типа MIME.
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="false">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
</dynamicTypes>
<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="application/json" enabled="true" />
</staticTypes>
</httpCompression>