KORRIGERA: Förfallotid när du infogar objekt med hjälp av metoden "Cache.Insert" i .NET Framework 4.7

Gäller för
.NET Framework 4.7

Symptom

Anta att du har Microsoft .NET Framework 4.7 installerat på en dator. När du försöker infoga objekt i cacheobjektet med hjälp av metoden Infoga Cache.Insert (sträng, objekt, CacheDependency, DateTime, TimeSpan) kanske du märker att de infogade cacheobjekten upphör att gälla mycket tidigare eller senare än den angivna DateTime (förfallotiden).

Orsak

Den interna implementeringen av System.Web.Caching.Cache använder UTC-tidsstämpeln (Coordinated Universal Time) för absolut förfallodatum. Men just den här Cache.Insert (sträng, objekt, CacheDependecy, DateTime, TimeSpan) Insert överlagringsmetoden kontrollerar inte om förfallotiden konverteras till UTC. Därför inträffar förfallodatumet för objekt som infogas i cacheobjektet med hjälp av den här överlagringen tidigare eller senare än väntat, beroende på skillnaden i datorns tidszon från Greenwich Mean Time (GMT).

Lösning

Den tillfälliga lösningen för det här problemet är att använda antingen Cache.Add metoden eller en annan Cache.Insert överlagringsmetod.

Lösning

Det här problemet kommer att åtgärdas i nästa version av .NET Framework och kommer också att vara tillgängligt i nästa snabbkorrigering för .NET Framework 4.7.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".