だから私は、web.configで以下の設定を使って、IIS 10上でローカルにIIS 10で実行しているASP.NET MVC 5サイトをWindows 10のラップトップに持っています。最大エージングを使用してASP.NET MVC + IIS 10 - キャッシュコントロールは常にプライベート
<compilation debug="false" targetFramework="4.5.2" />
とCache-Controlヘッダ:Release構成、デバッグモードオフでコンパイル
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
しかし、関係なく、私は何をすべきか、私はいつもCache-を見ませんコントロール:プライベート
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
私はすべてのモジュールをオフにし、失敗したトレース要求を実行しました。ヘッダが設定されている示した:
しかし、私は、ヘッダーが設定されているモジュールのように見えるこのManagedPipelineHandlerについて何を追跡することはできません。
私はカスタムヘッダとしてのCache-Controlを追加してみました:
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<remove name="Cache-Control" />
<add name="Cache-Control" value="public, max-age=1800, must-revalidate" />
</customHeaders>
</httpProtocol>
しかし、これが唯一の既存のプライベート設定に付加:
HTTP/1.1 200 OK
Cache-Control: private,public, max-age=1800, must-revalidate
Content-Type: text/html; charset=utf-8
マイrunAllManagedModulesForAllRequests
設定は、他の記事を持っている偽であります提案が原因かもしれません。私はこのヘッダーをコードで設定できることを知っていますが、なぜ&が「プライベート」設定を強制しているのかを知りたいと思っています。
誰も助言できますか?
UPDATE
Something is forcing responses to have cache-control: private in IIS7
要求(とあなたが有効になって出力キャッシュを持っている)のために使用され何も出力キャッシュはありませんときに、これは.NETのデフォルトの動作です。 web.configのsendCacheControlHeader属性を&のfalseに設定した場合、Cache-Control:privateヘッダーは取得されません!
奇妙なことに、あなたはまだノードに基づいて正しいのCache-Controlヘッダを得ることはありません - しかし、あなたはセクションを経由して、ヘッダを制御するので、これが機能するようになりました:このコンテキストで
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Cache-Control" value="max-age=30,public" />
</customHeaders>
</httpProtocol>
「デフォルトの」MVC設定が、完全に正当なsystem.webserver設定よりも優先されると言っていますか?それはちょうど正しくないようです。 – Neil