缓存碰到的问题,有代码
///    <summary>  
 		///   根据forumid获取特定版块的信息 
 		///    </summary>  
 		///    <param   name= "forumid "> 版块ID </param>  
 		///    <returns> 返回一个数据行 </returns>  
 		public   static   DataRow   GetForumInfo(string   forumid) 
 		{   
 			DataRow   dr   =   null; 
 			Hashtable   myht   =   (Hashtable)HttpContext.Current.Application[ "dh_strdrhd "];			 
 			if(myht==null) 
 			{ 
 				myht   =   new   Hashtable(); 
 				DataTable   dt   =   GetForumHead()   ; 
 				for(int   i=0;i <dt.Rows.Count;i++) 
 				{ 
 					dr   =   dt.Rows[i]; 
 					if(false==myht.Contains(Convert.ToString(dr[ "forumid "]))) 
 					{ 
 						myht.Add(Convert.ToString(dt.Rows[i][0]),dr); 
 					}  					 
 				} 
 				HttpContext.Current.Application[ "dh_strdrhd "]   =   myht; 
 								bbs.Common.Util.WriteTxt( "根据forumid获取特定版块的信息 "); 
 			} 
 			dr   =   (DataRow)myht[forumid]; 
 			return   dr; 
 		}     
 我想把一些信息缓存,可是,发现1分钟后就超时了,这是怎么回事呢
------解决方案--------------------放在Application中是没有超时的概念的,
是不是你重新编译的问题?
------解决方案--------------------编译过application中的信息肯定不会存在了.
------解决方案--------------------如果不重新生成,每隔一分钟也是如此?
------解决方案--------------------请确认是不是因为编译引起的问题,如果是,就不用解决,这是正常的.
------解决方案--------------------重新生成项目相应于重启应用程序,所有 内存中的信息会丢失.这是正常的.
因为运行的时候不会出现这种情况.
所以我让你确定是不是编译引起的,
------解决方案--------------------如果不编译,过几分钟再看,数据还在不在.
------解决方案--------------------在项目中搜索一下
Application[ "dh_strdrhd "]
看看,是不是其他的地方将它释放了.
------解决方案--------------------与静态函数应该没有关系。
为什么是每隔一分钟?时间准确?那肯定就是人为的原因。
------解决方案--------------------呵呵,你自己买一台服务器,确保资源非常充足,那么几十分钟才会调用一次。   
 即使资源非常充足,应用程序也会有一些机会(当它被服务认为需要维护的时候)被重新启动,例如iis默认地就会定时重新启动子程序。说application中能在整个(传统意义上的)应用程序生命期保存,是个及其不严谨的说法。   
 web服务最初本来就是如此设计的。当可以在浏览器上访问一个页面的时候,也许提交前web服务已经重新启动了,甚至物理机器已经断电然后重新启动了,但是传统的web页面并不在乎这个,因为它的通讯和内容设计是服务端无状态的设计。iis、asp.net中许多地方都是为了提高Web服务的可靠性和吞吐率而设计的,而不是按照传统的c/s软件那样认为设计的。   
 如果你想避免它,配置你的web服务器,选择更好的服务器硬件,或者干脆自己写一个web服务程序(用.net写web服务器其实还是比较容易的,web服务不过是asp.net这座大厦楼下门前的一个比较粗俗的邮递员)。
------解决方案--------------------哦,我说的“web服务”不是指webService,使指 httpServer 产品。有很多个人产品可以运行asp.net的。