加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在Windows Creators Update之后,ASP.NET缓存似乎

发布时间:2020-12-16 09:32:52 所属栏目:asp.Net 来源:网络整理
导读:我不确定除了有其他人看到这个之外我还有其他具体问题吗?如果是这样,是否有已知的解决方法/修复方法?我没有在Google上找到关于此主题的任何内容. 基本上,我们有一个ASP.NET MVC应用程序,我们在localhost上运行,在内存缓存中广泛使用ASP.NET.我们将许多重复
我不确定除了有其他人看到这个之外我还有其他具体问题吗?如果是这样,是否有已知的解决方法/修复方法?我没有在Google上找到关于此主题的任何内容.

基本上,我们有一个ASP.NET MVC应用程序,我们在localhost上运行,在内存缓存中广泛使用ASP.NET.我们将许多重复的请求缓存到Db.

昨天,我们将两台开发机器升级到了Windows 10 Creators Update.在更新之后,我们注意到仅在这些计算机上的页面请求开始被抓取.每页超过30秒.

经过一些调试和查看日志后,我们发现系统每次请求向Db发出200-300次相同的请求.以前,这只是第一次缓存,并且在缓存过期之前该请求不会再次发生.

我们看到的是这段代码:

var myObject = LoadSomethingFromDb();
HttpRuntime.Cache.Insert("test",myObject);
var test = HttpRuntime.Cache.Get("test");

在某些时候,即使在插入代码之后,Get也将返回NULL,即使缓存甚至没有接近满的方式.该应用程序刚刚开始.

别人都看到了吗?

解决方法

没关系.我们忽略了Absolute Cache Expiration参数,我忽略了它包含在问题的代码中,因为我认为这不是相关的.

我们使用的绝对缓存过期时间为:

DateTime.Now.AddMinutes(60)

相反,我们应该一直在使用:

DateTime.UtcNow.AddMinutes(60)

不知道为什么前者在创建者更新之前在Windows中很好,但是对UtcNow的更改似乎使缓存再次起作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读