我被微软害苦了! Context.Cache的使用
学习.NET,学习WEB服务,那不如动手实践下!
用微软的例子程序:TaskVision,里面正好是一个智能客户端,一个WEB服务,符合要求。
正好一个项目可以拿来练笔:用到里面的语句
Context.Cache.Insert(encryptedTicket, userID, null, DateTime.Now.AddMinutes(timeout), TimeSpan.Zero);
意思让一个标签timeout分后失效。
可就好,写好运行,总是偶尔有效,估摸十次有一次有效,标签能正常加进去,苦恼了两天,才发现是.NET2.0改变了写法,不能和1.1那样使用了。
正确用法是:
<1> // 采用N分钟后过期策略
Context.Cache.Insert(encryptedTicket, userID, null, DateTime.Now.AddMinutes(timeout), System.Web.Caching.Cache.NoSlidingExpiration);
<2>
// 采用N分钟没有使用则过期策略
Context.Cache.Insert(encryptedTicket, userID, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(timeout));
一切其实也在帮助中,那十次有一次有效的偶尔性是怎么回事情,也没力气分析了,
System.Web.Caching.Cache.NoAbsoluteExpiration 和用DateTime.MaxValue效果一样。
用微软的例子程序:TaskVision,里面正好是一个智能客户端,一个WEB服务,符合要求。
正好一个项目可以拿来练笔:用到里面的语句
Context.Cache.Insert(encryptedTicket, userID, null, DateTime.Now.AddMinutes(timeout), TimeSpan.Zero);
意思让一个标签timeout分后失效。
可就好,写好运行,总是偶尔有效,估摸十次有一次有效,标签能正常加进去,苦恼了两天,才发现是.NET2.0改变了写法,不能和1.1那样使用了。
正确用法是:
<1> // 采用N分钟后过期策略
Context.Cache.Insert(encryptedTicket, userID, null, DateTime.Now.AddMinutes(timeout), System.Web.Caching.Cache.NoSlidingExpiration);
<2>
// 采用N分钟没有使用则过期策略
Context.Cache.Insert(encryptedTicket, userID, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(timeout));
一切其实也在帮助中,那十次有一次有效的偶尔性是怎么回事情,也没力气分析了,
System.Web.Caching.Cache.NoAbsoluteExpiration 和用DateTime.MaxValue效果一样。