7

ASP.NET MVC では、web.config を使用して IIS7.5 gzip 圧縮設定を有効にして構成しました。しかし、レベル設定を圧縮してもまったく効果がないように見えます。

<scheme name="gzip" dynamicCompressionLevel="9" staticCompressionLevel="9"/>

両方の設定で圧縮レベル = 0 の場合、私のホームページは (39,623 から) 9,290 バイトに gzip されます。

両方の設定で圧縮レベル = 9 の場合、私のホームページは (39,623 から) 9,290 バイトに gzip されます。

(フィドラーを使用して、圧縮/非圧縮サイズを確認します)

圧縮量に違いはありません - それはなぜですか? これは、ローカルの開発マシンである Windows 7 で発生します。Win 2008 Web サーバーではまだ試していません。

web.config の完全圧縮設定:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="10" staticCompressionLevel="10"/>
  <dynamicTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="message/*" enabled="true"/>
    <add mimeType="application/javascript" enabled="true"/>
    <add mimeType="application/x-javascript" enabled="true"/>
    <add mimeType="application/xml" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true"/>
    <add mimeType="message/*" enabled="true"/>
    <add mimeType="application/javascript" enabled="true"/>
    <add mimeType="application/x-javascript" enabled="true"/>
    <add mimeType="application/xml" enabled="true"/>
    <add mimeType="*/*" enabled="false"/>
  </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

編集:どうやら最高レベルは 9です。レベル9を使用しても問題は同じです

4

3 に答える 3

2

ダイナミック圧縮がインストールされていることを再確認してください

次に、いくつかの圧縮のデフォルト が90%に設定されていることをオーバーライドし、デフォルトが50%になるdynamicCompressionDisableCpuUsageまで圧縮が再開されないことを確認できますdynamicCompressionEnableCpuUsage。後者を上げることをお勧めします。

この種の問題については、SOのいくつかの 場所で失敗した要求のトレースも推奨されており、問題の特定に役立つ可能性があります。

次の質問に対するいくつかの詳細な回答があります

IIS7でgzip圧縮を機能させるにはどうすればよいですか?

圧縮が機能していません

アップデート:

設定はアプリケーションレベルでロックされている可能性があるため、次のコマンドを実行してみてください。

appcmd set config -section:urlCompression /doDynamicCompression:true

それでも問題が解決しない場合は、IISの新しいバージョンminFileSizeForCompでデフォルトが増加していることを調整する価値があるかもしれません。

コメントによると、これを釘付けにしようとしている間は、動的に開始して静的を省略してみてください。

于 2012-10-01T08:29:57.433 に答える
1

ホームページが動的に生成されない場合、dynamicCompressionLevelは効果がありません。

静的圧縮はデフォルトで有効になっているため、ホームページの圧縮バージョンがすでにキャッシュされている可能性があります。ホームページを単純に変更することもできます(たとえば、1文字だけ変更するだけです)。その後、新しい設定で再圧縮する必要があります。

デフォルトの静的圧縮がすでにレベル9になっている可能性があります。変化が見られない場合は、静的レベルを1に下げて、違いがあるかどうかを確認することもできます。

DLLを提供する必要がある場合があります。

<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
于 2012-10-05T20:30:25.190 に答える
0

MVC パイプラインに圧縮フィルターが含まれていますか?

はいの場合、IIS 動的圧縮モジュールよりも優先されます。IIS 動的圧縮モジュールは既に http 圧縮されている出力を圧縮しようとしないため、このモジュールの設定は MVC ページには影響しません。

于 2015-09-08T09:06:34.240 に答える