IIS7内で圧縮を有効にしましたが、ASP.NETAJAXによって構築されたものを除くすべての応答で期待どおりに機能します。クライアントにデータを提供するWebサービスがあります。Webサービスを直接呼び出すと、適切に圧縮されます。ただし、ASP.NET AJAXを介して呼び出された場合、JSON応答は圧縮されません。
ASP.NET AJAXでGZip圧縮を使用してJSON応答を送信するにはどうすればよいですか?
これはすぐに使用できるはずです。ASP.NET AJAX JSON 応答が GZip 圧縮を使用していることを確認するには:
Fiddler をダウンロードします (バージョン 2.1.9 が最新です)。
IE 7 で Fiddler を有効にします: [ツール] -> [Fiddler2]
すべてのトラフィックがプロキシ経由でルーティングされるため、HTTP ヘッダーに accept-encoding:Gzip を適用するように Fiddler を設定する必要があります。ルール -> GZip エンコーディングを適用
フィドラーを介してサイトにアクセスします。サイトがローカルホスト上にある場合、IE7 はこれをフィドラー経由でルーティングしません。Fiddler 2.1.8 には、localhost (127,0.0.1) をhttp://ipv4.fiddlerおよびhttp://ipv6.fiddlerにマップする優れた機能があります。
Fiddler セッションで asmx 要求を見つけます。
リクエストが gzip エンコーディングで作成されたことを確認するには、上部パネルの Request-Headers を見てください。「Client: accept-encoding: gzip,deflate」が表示されます。
応答が gzip エンコーディングで送信されたことを確認するには、下部パネルの Response-Headers を見てください。"Transport: Content-Encoding: gzip"が表示されます。
追加の構成なしで IIS 7 を Vista Business SP1 にインストールしました。私のプロジェクトでは、標準の Web サービスで ASP.NET AJAX を使用しています。
それが役立つことを願っています!
.asmxファイル拡張子が圧縮するファイルタイプのリストに含まれていることを確認する必要があります。これがajaxjsonの由来です。
また、JSON リクエストの HTTP ヘッダーに accept-encoding:gzip などがあることを確認してください。