12

IIS7 内で圧縮を有効にしましたが、ASP.NET AJAX によって構築されたものを除くすべての応答で期待どおりに動作します。クライアントにデータを提供する Web サービスがあります。Web サービスが直接呼び出されると、適切に圧縮されます。ただし、ASP.NET AJAX 経由で呼び出された場合、JSON 応答は圧縮されません。

ASP.NET AJAX で JSON 応答を GZip 圧縮で送信するにはどうすればよいですか?

4

4 に答える 4

5

IIS7は、コンテンツエンコーディングを使用して、応答を圧縮するかどうかを決定します(もちろん、ブラウザーがgzipを受け入れることができると想定しています)。これらはapplicationHost.configで設定され、デフォルトでリストは次のようになります。

<dynamicTypes>
     <add mimeType="text/*" enabled="true" />
     <add mimeType="message/*" enabled="true" />
     <add mimeType="application/x-javascript" enabled="true" />
     <add mimeType="*/*" enabled="false" />
</dynamicTypes>

Webサービスを直接呼び出す場合、XML応答のコンテンツタイプはtext/xml、圧縮されます。AJAXによって呼び出された場合、JSON応答のコンテンツタイプはapplication/json。であるため、圧縮されません。以下をapplicationHost.configに追加すると、修正されるはずです...

     <add mimeType="application/json" enabled="true" />
于 2008-11-05T21:23:26.233 に答える
1

どのブラウザを使用していますか? IE 6 には、圧縮エラーを引き起こすバグがあります。したがって、ASP.NET AJAX は IE 6 ブラウザへの圧縮をオフにします。

http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx

また、ASMX ファイルの圧縮を有効にしましたか?

于 2008-10-30T00:59:57.380 に答える
0

一般に、アプリに桁違いのサーバーパワーを投入することを気にしない限り、これを行いたくありません...

また、これを行うとサーバーCPUだけでなくクライアントCPUも問題になります....

これは、すべての Ajax レスポンスを GZip すると、アプリの速度が大幅に低下するということで終わります...!

于 2008-11-20T08:50:27.893 に答える
0

最後に確認したところ、gzip は IIS が行うものでした (正しくセットアップされた場合) - そしてもちろん、ブラウザが必要なヘッダーを送信するとき

于 2008-11-05T04:19:06.847 に答える