我正在使用.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.NET网站中使用代码时才会发生这种情况。它在控制台应用程序中运行良好。
我在ms connect上找到了this,但我添加到HostFileChangeMonitor的目录已经存在。
感谢您的帮助。
答案 0 :(得分:3)
回答我自己的问题:
将目录添加到HostFileChangeMonitor时似乎4.0有一个错误。
答案 1 :(得分:0)
即使在观看单个文件时,错误仍然存在。 我们使用HostFileChangeMonitor只有一个文件的列表,我们客户端的生产服务器抛出此异常。 我们建议使用MS修复:https://support.microsoft.com/en-us/kb/2346777 一旦我们确认错误消失,我就会更新答案。