首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用自定义缓存提供程序生成的密钥进行ASP.net 4.0片段缓存

使用自定义缓存提供程序生成的密钥进行ASP.net 4.0片段缓存
EN

Stack Overflow用户
提问于 2012-02-23 07:15:19
回答 1查看 382关注 0票数 1

我已经实现了一个基于磁盘的自定义缓存提供程序,除了一个问题之外,它工作得很好。当我在aspx页面中使用提供程序时,生成的密钥是来自"a2/../../default.aspx“的,这很好。当我在用户控件中使用相同的提供程序时,生成的键的形式是“lfffffff40e80...”在应用程序池回收之前,这是很好的。然后,对于相同的用户控件,会生成一个类似的密钥(但不是相同的),这意味着无法使用新的密钥访问缓存中的用户控件,并且会在磁盘缓存中为相同的用户控件生成一个新的条目。

这是自定义缓存提供程序处理用户控件的方式吗?当应用程序池回收时,如何为用户控件生成相同的密钥?

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2012-02-23 16:50:45

我不相信有一种方法可以控制缓存键是如何创建的-对于用户控件,这是一个涉及的过程,包括组合多个哈希码和/或包括堆栈跟踪哈希等。因为总是使用一些工厂对象的哈希码来计算缓存键,你将在新的应用程序域中获得一个不同的键(在应用程序池回收之后),因为对象的哈希码将不同。

因此,即使在应用程序池回收后创建新的缓存副本,我也看不到任何重大问题-因为您需要调整时间(您不能有两次频繁的应用程序池回收,因为应用程序启动代码将需要在每次回收后运行)。

顺便说一句,您可以为不同页面上的多个用户控件实例创建一个缓存的Shared副本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9404761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档