증상
컴퓨터에 Microsoft .NET Framework 4.7이 설치되어 있다고 가정합니다. Cache.Insert(string, object, CacheDependency, DateTime, TimeSpan) Insert 오버로드 메서드를 사용하여 Cache 개체에 항목을 삽입하려고 하면 삽입된 캐시 항목이 지정된 DateTime(만료 시간)보다 훨씬 이전 또는 나중에 만료되는 것을 알 수 있습니다.
원인
System.Web.Caching.Cache의 내부 구현에서는 절대 만료를 위해 UTC(협정 세계시) 타임스탬프를 사용합니다. 그러나 이 특정 Cache.Insert(string, object, CacheDependecy, DateTime, TimeSpan) Insert 오버로드 메서드는 만료 시간이 UTC로 변환되는지 여부를 확인할 수 없습니다. 따라서 이 오버로드를 사용하여 Cache 개체에 삽입되는 항목의 만료는 GMT(그리니치 표준시)의 컴퓨터 표준 시간대 차이에 따라 예상보다 일찍 또는 나중에 발생합니다.
해결 방법
이 문제에 대한 임시 해결 방법은 Cache.Add 메서드 또는 다른 Cache.Insert 오버로드 메서드를 사용하는 것입니다.
해결 방법
이 문제는 .NET Framework 다음 버전에서 해결되며 .NET Framework 4.7의 다음 핫픽스에서도 사용할 수 있습니다.
상태
Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.