修复: 过期时间问题通过使用.NET Framework 4.7 的"Cache.Insert"方法插入项时

症状

假定您有 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 产品中的问题。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

×