症状
假定您有 Microsoft.NET Framework 4.7 安装在一台计算机上。当您尝试将项插入到缓存对象,使用Cache.Insert (字符串、 对象 CacheDependency,日期,时间跨度)插入重载方法时,您可能会注意到插入的缓存项过期过早或过晚于指定的日期时间(到期时间)。
原因
System.Web.Caching.Cache的内部实现的绝对过期使用协调通用时间 (UTC) 时间戳。但此特定Cache.Insert (字符串、 对象 CacheDependecy,日期,时间跨度) 插入的重载方法不会使确保是否过期时间转换为 UTC。因此,过期的项插入到缓存对象使用此重载将发生更早或晚于预期,这取决于计算机的时区差异从格林威治标准时间 (GMT)。
解决方法
为解决此问题的临时解决办法是使用Cache.Add方法或其他Cache.Insert重载方法。
解决方案
此问题将在下一版本的.NET Framework 中,固定,则还可以使用.NET Framework 4.7 为下一步的修复程序中。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。