问题描述
我正在使用.NET 4的System.Runtime.Caching中的MemoryCache,并且希望在目录更改时使缓存条目无效.
I am using MemoryCache from System.Runtime.Caching of .NET 4 and I wish to invalidate the cache entry when a directory changes.
HostFileChangeMonitor应该可以处理文件和目录,所以我要这样添加它:
HostFileChangeMonitor is supposed to handle both files and directories so I am adding it like so:
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.NET网站中使用代码时,才会发生这种情况.从控制台应用程序内部可以正常工作.
This only happens if I use the code in a ASP.NET website. It works fine from inside a console application.
我发现此,但是存在我要添加到HostFileChangeMonitor的目录.
I have found this on ms connect, but the directory I am adding to the HostFileChangeMonitor exists.
感谢您的帮助.
推荐答案
要回答我自己的问题:
将目录添加到HostFileChangeMonitor时,似乎4.0存在一个错误.
To answer my own question:
it seems that 4.0 has a bug when adding Directories to the HostFileChangeMonitor.
这篇关于在HostFileChangeMonitor初始化到目录的情况下使用MemoryCache会得到ArgumentOutOfRangeException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!