关于HttpRuntime.Cache的丢失

离子漂浮物 2007-10-12 04:12:10
public static Mssql_Execute Exec()
{
if (HttpRuntime.Cache["Server.DataProvider"] == null)
{
Mssql_Execute dp = new Mssql_Execute(svDataProvider.getConfig());
HttpRuntime.Cache.Insert("Server.DataProvider", dp);
}
return (Mssql_Execute)HttpRuntime.Cache["Server.DataProvider"];
}

我某个Cache的写法。但还是偶尔会提示HttpRuntime.Cache["Server.DataProvider"]为NULL的提示。如何能真正避免这种情况出现呢。
...全文
222 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
flaigd 2007-10-12
  • 打赏
  • 举报
回复
这种情况是无法避免的,因为你放在Cache中的内容会在应用程序重启后被进程回收的。

导致应用程序重启的情况很多,比如内存占用高,bin目录的dll变动,web.config文件修改等。

在为null的时候自动重新加载就可以了,如果你想保持状态的话就把对象Serializable之后放到数据库或文件中,再加载就行了

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧