2011-06-23 8 views
1

レスポンスのキャッシュコントロールヘッダーを設定するASP.NET MVCアクションフィルターがあります。 Webサーバーに公開する以外はすべて正常に動作します。サーバー上のASP.NETキャッシュコントロールの変更

私はローカルホストを通してそれを実行している私には、以下の取得:

Cache-Control:public, max-age=172800 
Connection:Close 
Content-Length:15057 
Content-Type:application/pdf 
Date:Thu, 23 Jun 2011 17:09:09 GMT 
Server:ASP.NET Development Server/9.0.0.0 
X-AspNet-Version:2.0.50727 
X-AspNetMvc-Version:2.0 

が出てクリアされますライブサイト何らかの理由max-ageためので

Cache-Control:public 
Content-Length:15057 
Content-Type:application/pdf 
Date:Thu, 23 Jun 2011 17:09:45 GMT 
Server:Microsoft-IIS/6.0 
X-AspNet-Version:2.0.50727 
X-AspNetMvc-Version:2.0 
X-Powered-By:ASP.NET 

を通じて実行している場合、私は理解できませんそれを出す。

唯一の違いは、devサイトがCassini Webサーバーを経由し、ライブがIISなので、おそらくIISが最大の年齢をクリアしているということです。

キャッシュ制御ヘッダーに最大有効期間の値を保存するにはどうすればよいですか?

編集: ここでは、見るべきものがあるかもしれない場合のweb.configのsystem.webserverノードの写真です。

web.config

+0

あなたがIISでHTTPヘッダー]タブをチェックしましたか? – Jay

+0

@Jay HTTPヘッダータブで2日間で有効期限を変更しましたが、応答ヘッダーは変更されません。それは私のweb.configですか?たぶん、いくつかのHttpModuleがヘッダーを乱しているのでしょうか? – Jose

+0

私はそれを疑う。これで100%になることはできませんが、IISは外出したときに最後に応答に触れることができます。その時点から、外部サーバ/ネットワークノードがヘッダーで再生している可能性がありますか? – Jay

答えて

1

コンフィギュレーション・ファイル内< clientCache/>行を見つけ、確認してください。使用していない場合は、CacheControlModeをUseMaxAgeに設定してみてください。例えば

:< clientCache cacheControlMode = "UseMaxAge" cacheControlMaxAge = "午前10時00分00秒"/>

+0

それは運がありませんでした。さらに、IIS 7のみがclientcacheディレクティブをサポートしているように見えます。http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache – Jose

+0

申し訳ありませんが、IIS6を使用していることに気付かなかった。既に試したことがあるかもしれませんが、そうでない場合は、IISでCacheControlMaxAgeを設定してみてください。http://msdn.microsoft.com/en-us/library/ms524623(v=vs.90).aspx私はフィドラーで試してみました。それ以外に、私には他のアイデアはありません。 – sshah

+0

メタベースをどのように編集すればよいですか?決してそれをしなかった。 – Jose

関連する問題