REVISIÓN: La cuestión del tiempo de caducidad al insertar elementos mediante el método "Cache.Insert" en el 4.7 de.NET Framework

Se aplica a: Microsoft .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 de caché mediante la Cache.Insert (string, object, CacheDependency, DateTime, TimeSpan) método de sobrecarga Insert, puede observar que los elementos insertados de caché caduquen mucho anterior o posterior a la fecha y hora especificada (fecha de caducidad).

Causa


La implementación interna de System.Web.Caching.Cache utiliza la marca de hora de la hora Universal coordinada (UTC) para una caducidad absoluta. Pero este particular Cache.Insert (string, object, CacheDependecy, DateTime, TimeSpan) método de sobrecarga Insert no asegura si el tiempo de caducidad se convierte a UTC. Por lo tanto, caducidad para los elementos que se insertan en el objeto de caché mediante esta sobrecarga se producirá antes o después de lo esperado, dependiendo de la diferencia de zona horaria del equipo del meridiano de Greenwich (GMT).

Solución alternativa


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

Solución


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

Estado


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