关于asp.net中cache 的疑惑

longsky 2005-04-28 05:37:28
我在用C#编写asp.net程序,其中有一个基本固定不变、但又要经常使用的字符串,我把它放在cache中。

程序在多数主机上运行完好,但在一台win2003机子上,出现了问题,cache的值会时常丢失,一但丢失,操作中含有这个变量的页面就会出现[NullReferenceException: 未将对象引用设置到对象的实例。]

我想问问,这个cache的默认过期时间是多少呢?我的本机上也是win2003,使用时程序从未出现此错误,如果要更改默认设置,在哪里更改呢?


...全文
268 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlekeen 2005-04-29
  • 打赏
  • 举报
回复
固定的设置变量,可以放在web.config中,cache的使用本身就不稳定
health888 2005-04-29
  • 打赏
  • 举报
回复
帮你up
longsky 2005-04-29
  • 打赏
  • 举报
回复
我是有几十个固定的设置变量,所以用了cache,但同样是默认安装的.net 1.1 运行环境,有的cache就会过期,有的机子上就从未不发现这个情况?
lgsg_01 2005-04-29
  • 打赏
  • 举报
回复
JF
marvelstack 2005-04-29
  • 打赏
  • 举报
回复
加一个Cache回调函数,
在失效时进行即时加载使数据重新有效,如果在asp.net中加多线程可能要考虑仔细。
http://www.microsoft.com/china/msdn/library/webservices/asp.net/aspnetasp11022004.mspx
新鲜鱼排 2005-04-28
  • 打赏
  • 举报
回复
up
wjcking 2005-04-28
  • 打赏
  • 举报
回复
用Application
mark44404 2005-04-28
  • 打赏
  • 举报
回复
如果要利用 Cache 所提供的清理、到期时间和依赖项支持,则必须使用 Cache.Insert 方法或 Cache.Add 方法。
Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30));

Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null);

您可以使用 absoluteExpiration parameter 参数和 slidingExpiration 参数将设有到期策略的项添加到 Cache 中。您可以定义绝对过期时间或弹性过期时间,但不能同时定义两者。在使用上述参数之一定义到期策略时,必须将另一个参数设置为零。Cache 类定义了两个自动执行该操作的字段:NoAbsoluteExpiration 和 NoSlidingExpiration。当定义绝对或弹性过期时间时,只要将适当的参数设置为其相应的字段值即可。下面的示例使用 Insert 方法将设有两分钟绝对到期时间的项添加到 Cache 中。

当设置绝对到期时间时,请使用 DateTime 结构。当设置弹性过期时间时,请使用 TimeSpan 结构。另外,如果您创建的弹性过期时间小于零或大于一年,则将引发 ArgumentOutOfRangeException 类。
v192 2005-04-28
  • 打赏
  • 举报
回复
用Application,不用Cache。你一个字符串用Cache没必要的

110,533

社区成员

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

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

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