ASP.NET で ブラウザ キャッシュ を 無効化 する web.config 設定

0 件のコメント

ASP.NET サービス 全体に対して キャッシュ を 無効化 してしまえ!! …という、若干横暴な設定方法です。 この設定を行うことで、web.config 配下にある リソース や サービス は すべて ブラウザキャッシュ されなくなります。

この設定はあくまで ブラウザキャッシュ(クライアント側) の無効化であり、サーバーキャッシュ(サーバー側) の無効化ではありません。

以下では、具体的な設定例(設定方法)とその説明を行っています。

… 個人的にはオススメしません。。 が、あくまで技術的に "できるよ" という内容です。 ブラウザキャッシュ を 無効化 すると、サーバーアクセス が増加するので計画的な無効化をオススメします。 …

設定例

キャッシュ を 無効化 したいサービス、WEBアプリケーション の web.config に対して、 次に示す内容を追加します。

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Cache-Control" value="no-cache" />
                <add name="Pragma" value="no-cache" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

説明

httpProtocol/customHeaders/add の要素で、すべての HTTP通信 レスポンス に対して カスタムヘッダー を追加するようにします。 この カスタムヘッダー で追加される レスポンスヘッダー は次の通りです。

  • Cach-Control: no-cache
  • Pragma: no-cache

これらを レスポンスヘッダー に対して強制的に付加することで、明示的に ブラウザキャッシュ を許さないようにできます。

ここでは web.config の XML を直接編集していますが、同じ設定を IIS の GUI 上からも行うことができます。 詳細は こちら をご参照ください。

今回、参考にしたサイトは以下の通りです。