asp.net – 是MemoryCache范围会话还是应用程序?
我在ASP.NET中使用MemoryCache,它运行良好。我有一个对象被缓存一个小时,以防止新的数据从存储库中拉。
我可以看到缓存在调试中工作,但一旦部署到服务器,在第一次调用和对象被缓存后,后续调用大约1/5的时间。 然而,我注意到每个新的客户端调用(仍然在这个1小时的窗口内 – 实际上只是一分钟或2个)似乎有第一次调用我的服务(这是在缓存)花费的时间几乎与原来在数据被缓存之前调用。 这使我开始怀疑 – 是MemoryCache会话特定的,每个新的客户端进行调用存储自己的缓存,或者是其他的事情,导致第一次调用花费这么长时间,即使我知道数据已缓存吗? 解决方法
从
MSDN:
阅读和做一些调查反射代码很明显,MemoryCache只是一个简单的类。您可以使用MemoryCache.Default属性(重新)使用相同的实例,或者您可以构建尽可能多的实例(尽管建议尽可能少)。 所以基本上答案在于你的代码。 如果你使用新的MemoryCache(字符串,NameValueCollection)创建它,然后上述的注意事项应用加上你创建你的实例的上下文,也就是说,如果你在控制器中创建你的实例(我希望不是这样),然后你的缓存生活一个请求 很遗憾,我找不到任何引用,但… MemoryCache不保证根据您指定的缓存策略保存数据。特别是如果你正在运行你的应用程序的机器上受到内存的压力,你的缓存可能会被丢弃。 如果你还没有运气找出什么是早期缓存项无效的原因,你可以利用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 使用Web Garden模拟Web Farm会话问题
- asp.net-mvc – ASP.NET MVC单元测试 – 假存储库
- asp.net-mvc – viewdata中的ASP.NET MVC genric
- asp.net-mvc – 用于大型视频文件的MVC ActionRe
- asp.net – 如何在mvc中使用自定义成员身份添加更
- asp.net – PolicyException:无法获取所需的权限
- asp.net jquery无刷新分页插件(jquery.paginatio
- asp.net-mvc-3 – 通过使用jQuery Script调用URL
- asp.net-mvc-4 – Dapper.net如何创建地图
- asp.net – ADO.NET在.NET内核可能吗?