10

MVC4 WebAPI(RC)を使用するプロジェクトで作業しています。応答はgzip圧縮されていません(IISの動的圧縮が有効になっています)。MVC4 WebAPIがGETレスポンスを圧縮していない

通常のMVCコントローラからの応答は圧縮されています。 WebAPIレスポンスにgzip圧縮を有効にするには特定の設定が必要ですか?

カスタム圧縮ハンドラを追加できますが、可能であれば、組み込みのIIS圧縮を使用したいと思います。

私はこれがほぼCompress HTTP GET Responseの複製であることを知っていますが、そこに受け入れられた回答は本当に私の質問に答えません。

+0

は、MIMEタイプ「アプリケーション/ jsonのために有効に動的圧縮である「コードが普遍的な言語である」知っています。 charset = utf-8 '?デフォルトでは、動的圧縮が有効になっていても有効になりません。 –

+0

@EivindTどうすれば確認できますか? – Carvellis

+0

セクションの%windir%\ System32 \ inetsrv \ configのapplicationhost.configファイルを参照できます。ファイルを編集する代わりに、appcmd.exeを使用して次のように変更してください。http://stackoverflow.com/a/7375645/243936 –

答えて

11

mimetypeの動的圧縮が有効になっていますapplication/json; charset=utf-8?デフォルトでは、動的圧縮が有効になっていても有効になりません。

有効になっているかどうかを確認するには、セクションの%windir%\System32\inetsrv\configにあるapplicationhost.configファイルを参照してください。

あなたはこのようにそれを変更するappcmd.exeを使用する代わりに、ファイルを編集しないでください。https://stackoverflow.com/a/7375645/243936

+1

メモ帳を使ってapplicationhost.configファイルを手動で編集するのに問題はありませんでした。追加する必要があるのはhttpCompression - > dynamicTypesセクションの1行です: ''。詳細については、このリンクを参照してください。http://benfoster.io/blog/aspnet-web-api-compressionこれを実行すると、Web APIの応答がgzippedされました。 –

0

が実際にあなたがそれを達成するためにnugetパッケージをインストールすることができ、これはあなただけで追加する必要があり、クライアント側では、少し設定が必要ですaccept-encoding:gzip

このアプローチは、ASP.Netが任意のWebサーバーで実行できるようになった最近の方が優れています。

このビデオでは、gzip圧縮を使用したWebApiの完全な説明があります。スペイン語ですが、あなたは

NinjaTip #16 | Incluyendo soporte para GZip en WebAPI | C# NinjaTip #16 | Incluyendo soporte para GZip en WebAPI