CORRECCIÓN: Problema de fecha de expiración al insertar elementos mediante el método "Cache.Insert" en .NET Framework 4.7

Se aplica a
.NET Framework 4.7

Síntomas

Suponga que tiene Microsoft .NET Framework 4.7 instalado en un equipo. Cuando intenta insertar elementos en el objeto Cache mediante el método de sobrecarga Cache.Insert (cadena, objeto, CacheDependency, DateTime, TimeSpan) Insert, es posible que observe que los elementos caché insertados expiran mucho antes o más tarde que el DateTime (fecha de expiración) especificado.

Causa

La implementación interna de System.Web.Caching.Cache usa una marca de tiempo de hora universal coordinada (UTC) para una expiración absoluta. Pero este método de sobrecarga Cache.Insert (string, object, CacheDependecy, DateTime, TimeSpan) Insert no garantiza si la hora de expiración se convierte en UTC. Por lo tanto, la expiración de los elementos que se insertan en el objeto Cache mediante el uso de esta sobrecarga tendrá lugar antes o más tarde de lo esperado, dependiendo de la diferencia de zona horaria del equipo de la hora media de Greenwich (GMT).

Solución alternativa

La solución temporal para este problema es usar el método Cache.Add o un método de sobrecarga Cache.Insert diferente.

Resolución

Este problema se corregirá en la siguiente versión de .NET Framework y también estará disponible en la siguiente revisión de .NET Framework 4.7.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".