2016-09-28 17 views
0

次のコードを設定してキャッシュを作成しました。デバッグでは、cacheをウォッチリストに追加し、コードをステップ実行します。しかし、私がcacheのプロパティをチェックすると、PollingInterval(時間に関する何かを見ることができる場所のみ)にDaysが0、分が2として表示されます。私はAbsoluteExpirationとSlidingExpirationの両方でこれを試しました。C#のキャッシュ有効期限の確認/

ObjectCache cache = MemoryCache.Default; 
CacheItemPolicy policy = new CacheItemPolicy(); 
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddHours(24.0); 
//policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(30.0); 
policy.SlidingExpiration = TimeSpan.FromDays(2.0); 

cache.Set("Clients", clients, policy); 

私もcache.Set(...)の代わりに、CacheItemPolicyのための三番目のパラメータとしてDateTimeOffset.Now.AddHours(24.0)を使用してみました。

ありがとうございました。

+1

[PollingInterval](https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache.pollinginterval(v = vs.110).aspx) - _ "キャッシュはメモリ統計を更新します。 " - オブジェクトがキャッシュされる期間ではありません。 – stuartd

+0

キャッシュの有効期限を確認するにはどうすればよいですか? –

+1

[テストを書く](http://stackoverflow.com/questions/3848560/asp-net-4-0-cacheitempolicy-sliding-expiration-incorrect)?それとも、反射があるフィールドを覗いてみようか?なぜそれが正しく設定されているとは思わないのですか? – stuartd

答えて

0

@stuartdは上記のコメントで指摘したとおり、有効期限が正しく適用されていないことを疑うべきではありません。私はこのためにをチェックしてしまい、キャッシュの有効期限が実際に正しく適用されているという短い時間で確認しました。もう一度おねがいします@stuartd。

関連する問題