【发布时间】:2019-07-27 13:40:48
【问题描述】:
我已将示例 webapp 部署到 Azure。该应用使用 MemoryCacheEntryOptions 缓存了一个变量来存储一个值(来自数据库),该值在 5 分钟后到期。
但是通过 Chrome 调试工具 5 分钟后,我仍然可以查询缓存,缓存值预计为空或任何当前存储在数据库中的新值更新。
我什至尝试在网络浏览器中清除缓存,但缓存似乎仍然保留以前的值。
但是,当我重新启动网站并再次打开网络应用程序时,缓存值不再存在。
Azure 中的任何设置是否会影响缓存过期?
private readonly MemoryCacheEntryOptions _cacheEntryOptions;
protected CacheService(IMemoryCache memoryCache)
{
_ memoryCache = memoryCache;
_cacheEntryOptions = new MemoryCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(300)
};
}
【问题讨论】:
-
您创建了一个
MemoryCacheEntryOptions并将其保存到一个字段中,但从不使用它。这些设置未附加到您的内存缓存 -
你的代码看起来有点乱。只有在调用
IMemoryCache.Set方法时,才应该创建MemoryCacheEntryOptions的实例。这些选项必须被实例化并仅在您想在缓存中保存某些内容时使用。此外,Web 浏览器缓存与您的服务器端内存缓存无关。服务器端应用程序缓存功能与 Web 浏览器 HTTP 缓存之间没有关系。如何使用 Google Chrome 开发工具验证服务器端代码的行为?