Συμπτώματα
Ας υποθέσουμε ότι έχετε Microsoft .NET Framework 4.7 εγκατεστημένο στον υπολογιστή. Όταν προσπαθείτε να εισαγάγετε στοιχεία στο αντικείμενο Cache, χρησιμοποιώντας το Cache.Insert (συμβολοσειρά, αντικείμενο, CacheDependency "," ημερομηνία/ώρα "," χρονικό διάστημα) μέθοδο εισαγωγής υπερφόρτωση, ενδέχεται να παρατηρήσετε ότι τα στοιχεία που έχει εισαχθεί Cache λήξει πολύ παλαιότερες ή νεότερες από την καθορισμένη ημερομηνία/ώρα (λήξη χρόνου).
Αιτία
Την εσωτερική εφαρμογή των System.Web.Caching.Cache χρησιμοποιεί Συντονισμένη παγκόσμια ώρα (UTC) για τη σήμανση χρόνου για απόλυτη λήξης. Αλλά αυτό το συγκεκριμένο Cache.Insert (συμβολοσειρά, αντικείμενο, CacheDependecy "," ημερομηνία/ώρα "," χρονικό διάστημα) μέθοδο υπερφόρτωση εισαγωγής δεν Βεβαιωθείτε αν ο χρόνος λήξης μετατρέπεται σε UTC. Επομένως, λήξης για στοιχεία που έχουν εισαχθεί σε Cache αντικειμένου, χρησιμοποιώντας αυτή την υπερφόρτωση θα συμβεί νωρίτερα ή αργότερα από την αναμενόμενη, ανάλογα με τη ζώνη ώρας διαφορά υπολογιστή από μέση ώρα Γκρίνουιτς (GMT).
Εναλλακτικός τρόπος αντιμετώπισης
Προσωρινή λύση για το ζήτημα αυτό είναι να χρησιμοποιήσετε τη μέθοδο Cache.Add ή μια διαφορετική μέθοδο υπερφόρτωσης του Cache.Insert .
Προτεινόμενη αντιμετώπιση
Αυτό το ζήτημα θα διορθωθεί στην επόμενη έκδοση του .NET Framework, και θα είναι διαθέσιμο στην επόμενη επείγουσα επιδιόρθωση για το 4.7 του .NET Framework.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".