奇妙なことに、正確な問題とそれに関する多くの解決策に関する多くの投稿を読みましたが、これを理解できませんでした。したがって、私の問題と、問題を解決するためにこれまでに行ったことを明確にするために、以下をお読みください。
問題: javascript ファイル (mime タイプ text/javascript を使用) と aspx ページは gzip 圧縮で適切にロードされますが、Azure Web ロール (インスタンスには IIS 7.0 があります) でホストされている Web サービスからの xhr 応答に動的圧縮を使用できません。
環境: IIS 7.0 を実行する中程度の Azure インスタンス
問題を解決するために私が試して確認したこと
- Azure CDN が無効になっていることを確認します (azure cdn を有効にすると、xhr の圧縮が許可されなくなります。これは、別の手段を使用して解決する必要があります。たとえば、ここで説明されているようにカスタム Web リソース ハンドラーを作成することによってAzure CDN - HTTP 圧縮の有効化 - ホストされた Web ロール) (完了) )
- 手動で行う場合は、適切な applicationHost.config ファイルが編集対象になっていることを確認してください。たとえば、64 ビットで実行されている IIS 7.0 では、applicationHost.config ファイルは %windir%\SYSWOW64\inetsrv\config にあり、%windir%\System32\inetsrv\config フォルダーにはありません。(終わり)
- IIS 7.0 を介して、IIS サーバー レベルおよび Web サイト レベルで動的圧縮が有効になっていることを確認します (完了)。
- applicationhost.config で動的圧縮も有効になっていることを確認します。(終わり)
- 圧縮に適切な MIME タイプが使用されていることを確認します。(完了) 次の MIME タイプを使用しました。
- add mimeType="application/json" enabled="true"
- add mimeType="application/json; charset=utf-8" enabled="true"
- 応答のサイズが、圧縮が必要なデータのサイズの設定されたしきい値を満たしていることを確認します。(終わり)
- httpCompression への変更を有効にするために applicationhost.config ファイルを編集したら、アプリケーション プールをリサイクルします。(終わり)
- 圧縮用の一時ファイルが作成されるディレクトリに十分なスペースがあることを確認します。(スペースあり)
- 失敗した要求ログに無効な圧縮エラーが表示されないことを確認します。(失敗した要求はログに記録されません)。
上記は、これまでに試してテストしたことをカバーする必要があると思います。ほとんどの人は MIME タイプに関連する問題を抱えているようですが、私の場合はそうではないようです。
この問題を整理するのに役立つ提案や手順は大歓迎です。
更新: 検証のための新しいステップを追加しました。ステップ番号02を参照してください(2012年7月19日編集)