アプリケーション リクエスト ルーティングがキャッシュ ファイルをクリーンアップしない

アプリケーション リクエスト ルーティングがキャッシュ ファイルをクリーンアップしない

ARR を出力キャッシュを行うリバース プロキシとして構成しました。キャッシュ エントリの TTL は 20 分ですが、キャッシュ ファイルはディスク上に永久に残っているようです。

TTL は、アプリの Web.config ファイルの書き換えルールに従って構成されます。

    <rule name="Default ARR cache control" enabled="true">
      <match url=".*" />
      <serverVariables>
        <!-- First arg of value is: 1 to be always active, 0 only if there are no cache headers set. -->
        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=1200" />
      </serverVariables>
    </rule>

HTTP 応答では、この max-age も正しく確認でき、キャッシュは実際に期限切れになり、新しい結果が提供されます。キャッシュ ファイルを開くと、Cache-Control: public, max-age=1200そのヘッダーにも含まれます。

ただし、キャッシュ ファイルは、使用されていない場合でも残ります。ディスク キャッシュの「キャッシュ クリーンアップ間隔」は 5 分に設定されているため、ファイルは最大 25 分間しか残らないはずですが、数か月前のファイルも存在します。

何が足りないのでしょうか。どうすれば ARR で古いキャッシュ ファイルを削除できるのでしょうか。

ここscavenge.exeを使用してキャッシュファイルをクリーンアップする方法を説明します。二次的なドライブについては何も表示されませんが、プライマリ ドライブについては何も表示されません。または、キャッシュ ドライブが徐々にいっぱいになるのを待っていない場合は、このユーティリティを手動で実行する必要がありますか?

答え1

これらの設定がどのように機能するのかを誤解していたようで、「キャッシュ クリーンアップ間隔」は「ディスク使用量の高しきい値」と連携して機能します。

ということは、ファイルは5分ごとに消去されるが、「ディスク使用量の上限しきい値」に達した場合のみでしょうか? これは確かにその通りのようです。このブログ投稿: 「ディスク使用量の低しきい値」を 4 (パーセント) に、「ディスク使用量の高しきい値」を 5 に設定したのですが、確かにすぐに多くのファイルが削除されました。

関連情報