現象
コンピューターに Microsoft .NET Framework 4.7 がインストールされていることを前提としています。 Cache.Insert (文字列、オブジェクト、CacheDependency、DateTime、TimeSpan) Insert オーバーロード メソッドを使用して、Cache オブジェクトに項目を挿入しようとすると、挿入された Cache アイテムの有効期限が、指定された DateTime (有効期限) よりずっと早いか後に期限切れになることがあります。
原因
System.Web.Caching.Cache の内部実装では、絶対有効期限に協定世界時 (UTC) タイムスタンプが使用されます。 ただし、この特定 の Cache.Insert (文字列、オブジェクト、CacheDependecy、DateTime、TimeSpan) Insert オーバーロード メソッドは、有効期限が UTC に変換されているかどうかを確認しません。 したがって、このオーバーロードを使用して Cache オブジェクトに挿入される項目の有効期限は、コンピューターのタイム ゾーンのグリニッジ標準時 (GMT) との差に応じて、予想より早くまたはそれより後に発生します。
回避策
この問題の一時的な回避策は、 Cache.Add メソッドまたは別の Cache.Insert オーバーロード メソッドを使用することです。
解決策
この問題は、.NET Frameworkの次のバージョンで修正され、.NET Framework 4.7 の次の修正プログラムでも使用できるようになります。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。