使用带有 HostFileChangeMonitor init 的 MemoryCache 到目录会得到 ArgumentOutOfRangeException

ado*_*-mg 5 asp.net memorycache

我正在使用 .NET 4 的 System.Runtime.Caching 中的 MemoryCache,我希望在目录更改时使缓存条目无效。

HostFileChangeMonitor 应该处理文件和目录,所以我像这样添加它:

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

但后来我得到一个例外:

System.ArgumentOutOfRangeException: The UTC time represented when the offset is applied must be between year 0 and 10,000.
Run Code Online (Sandbox Code Playgroud)

仅当我在 ASP.NET 网站中使用代码时才会发生这种情况。它在控制台应用程序内部工作正常。

我在 ms connect 上发现了这个,但是我添加到 HostFileChangeMonitor 的目录存在。

谢谢你的帮助。

ado*_*-mg 4

回答我自己的问题:
4.0 在将目录添加到 HostFileChangeMonitor 时似乎有一个错误。

  • 我的解决方法是在目录的所有单个文件上添加文件依赖项。我的应用程序还处理文件夹中文件的添加和删除,因此一切顺利。一旦它在框架中得到修复,我就会切换到目录监视器,因为它应该是这样。 (2认同)