Triệu chứng
Giả sử rằng bạn có Microsoft .NET Framework 4.7 cài đặt trên máy tính. Khi bạn cố gắng chèn mục vào bộ đệm ẩn đối tượng bằng cách sử dụng các Cache.Insert (chuỗi, đối tượng, CacheDependency DateTime, TimeSpan) phương pháp chèn quá tải, bạn có thể thấy các mục được chèn vào bộ đệm ẩn hết hạn nhiều trước hoặc sau được chỉ định ngày giờ (thời gian hết hạn).
Nguyên nhân
Thực hiện System.Web.Caching.Cache nội bộ sử dụng giờ chuẩn quốc tế (UTC) dấu thời gian hết hạn tuyệt đối. Nhưng điều này đặc biệt Cache.Insert (chuỗi, đối tượng, CacheDependecy DateTime, TimeSpan) phương pháp chèn quá tải không chắc chắn rằng liệu thời gian hết hạn được chuyển đổi thành UTC. Do đó, hết hạn đối với các mục được đưa vào bộ đệm ẩn đối tượng bằng cách sử dụng quá tải này sẽ xảy ra trước hoặc sau hơn dự kiến, tùy thuộc vào sự khác biệt múi giờ máy tính từ Greenwich Mean Time (GMT).
Giải pháp
Giải pháp tạm thời cho vấn đề này là sử dụng phương pháp Cache.Add hoặc phương pháp khác quá tải Cache.Insert .
Giải pháp
Vấn đề này sẽ được khắc phục trong phiên bản tiếp theo của .NET Framework và cũng sẽ có sẵn trong các hotfix sau cho .NET Framework 4.7.
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".