0

現在、アクションで OutputCacheAttribute (System.Web.Mvc 内) を使用しています。

[ChildActionOnly]
[OutputCache(Duration = 24 * 60 * 60)] // Cache for 24 hours
public ContentResult Render(string json, string pagePublished)
{

最初のページの読み込み後、出力をキャッシュして保持します。キャッシュに何時間も、時には数分間キャッシュされたままになることもあります。

私はこのアクションを複数のページで使用しているので、最初はそれと関係があるのではないかと考えました。しかし、私は 1 つのページだけをキャッシュして、それが保持されるかどうかを確認しようとしましたが、そうではありません。多くのページをキャッシュしようとしましたが、何時間も保持されることがあります。

誰が何が間違っている可能性があるかについて考えを持っていますか?

編集:

w3wp プロセスは大量の RAM を使用します (これは設計によるものであり、問​​題ではありません) 割り当て用の空き RAM (約 5 GB) がまだあります。httpcontext キャッシュの現在のサイズを取得する別のアクションを作成しました。これは約 1350000 バイトになります。したがって、メモリに問題はないはずです。

また、項目をランダムに削除する MemoryCache にも問題があります (約 8530000 バイトになります)。

EDIT2:

アクションからの出力を MemoryCache と httpcontext キャッシュの両方に保存しているようです。

4

1 に答える 1

0

指定した時間、コンテンツがキャッシュされるという保証はありません。メモリ リソースが少なくなると、キャッシュは自動的にコンテンツの削除を開始します。

于 2013-01-09T12:44:44.840 に答える