57

ASP.NET MVC からの Json の結果を IIS 7 で正しく圧縮するのに苦労しています。IIS で静的圧縮と動的圧縮を有効にしました。通常の text/html および同様のレコードが圧縮されていることを Fiddler で確認できます。リクエストを表示すると、accept-encoding gzip ヘッダーが存在します。応答の MIME タイプは「application/json」ですが、圧縮されていません。

問題が MimeType に関連しているように見えることを確認しました。を含めるmimeType="*/*"と、応答が正しく gzip されていることがわかります。ワイルドカード mimeType を使用せずに IIS を圧縮するにはどうすればよいですか? この問題は、ASP.NET MVC がコンテンツ タイプ ヘッダーを生成する方法と関係があると思います。

CPU 使用率は、動的スロットリングのしきい値を大幅に下回っています。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>
4

5 に答える 5

61

%WinDir%\System32\inetsrv\config\applicationHost.configに次のものが含まれていることを確認してください。

<system.webServer>
    <urlCompression doDynamicCompression="true" />
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />       
      </dynamicTypes>
    </httpCompression>
</system.webServer>

@AtanasKorchevのリンクから。

@simon_weaver がコメントで述べたように、64 ビット Windows で 32 ビット エディターを使用して間違ったファイルを編集している可能性があります。notepad.exe を使用して、このファイルが実際に変更されていることを確認してください。

于 2012-05-10T07:07:03.277 に答える
22

ここで強調表示されているアプローチをうまく使用しました。

于 2010-01-26T08:52:24.087 に答える
14

このガイドを使用する

これらの答えはどれも私にとってはうまくいきませんでした。application/jsonに注意しました。ただし、 charset=utf-8 MIME タイプです。

于 2012-06-19T03:12:13.843 に答える
7

このアプローチをお勧めします クラスを
作成CompressAttributeし、ターゲットアクションを設定します。

于 2010-01-26T15:26:07.533 に答える