5

.NET 4のSystem.Runtime.CachingのMemoryCacheを使用していますが、ディレクトリが変更されたときにキャッシュエントリを無効にしたいです。

HostFileChangeMonitorはファイルとディレクトリの両方を処理することになっているので、次のように追加します。

var cacheItemPolicy = new CacheItemPolicy { SlidingExpiration = TimeSpan.FromMinutes(30) };
cacheItemPolicy.ChangeMonitors.Add(new HostFileChangeMonitor(new List<string> { folder }));

しかし、例外が発生します。

System.ArgumentOutOfRangeException: The UTC time represented when the offset is applied must be between year 0 and 10,000.

これは、ASP.NETWebサイトでコードを使用した場合にのみ発生します。コンソールアプリケーション内からは正常に動作します。

これはmsconnectで見つかりましたが、HostFileChangeMonitorに追加しているディレクトリが存在します。

ご協力いただきありがとうございます。

4

2 に答える 2

4

私自身の質問に答えるために:
HostFileChangeMonitorにディレクトリを追加するときに4.0にバグがあるようです。

于 2012-10-22T12:46:47.843 に答える
0

単一のファイルを監視している場合でも、エラーは依然として存在します。1つのファイルのみのリストでHostFileChangeMonitorを使用しており、クライアントの本番サーバーがこの例外をスローします。MSの修正をお勧めします:https ://support.microsoft.com/en-us/kb/2346777 エラーがなくなったことを確認でき次第、回答を更新します。

于 2016-07-04T08:19:54.700 に答える