日期:2014-05-17  浏览次数:20385 次

Asp.Net 保存用户操作数据,静态化与持久化
由于专业知识不足,不好描述我的提问

举例说明:
Default.aspx 页面后台有一个全局变量(对象),

Object obj;
这个变量记录了用户上传读取的Excel数据。
当用户再次向服务端请求时,全局变量(obj)中的值成了null。
当然按逻辑来讲,这里是应该为null。

如果将Object对象存放至服务器内存中(static)就不会有其他的问题。
但是这是一个多用户操作的平台,这样不可行。

-------------------------------------
无奈之下,只能将每一次请求,都在 page_load事件中重新读取一次Excel数据(赋值全局变量obj)
这样性能上有很大的问题,特别慢。
绞尽脑汁也想不出其他的办法,还请各位帮帮忙。 感激不尽!
asp.net 服务器 静态变量 持久化

------解决方案--------------------
最简单有效稳妥的办法是使用数据库。
------解决方案--------------------
用缓存,vs自带的cache或MemCache都可以,如果excel是公共的,大家都用同一个缓存,如果不是公共的,你的缓存Key用用户id来表示,如

Cache["Excel_10001"]=10001用户的excel信息; //10001是用户id
------解决方案--------------------
用数据库或者SESSION
Excel数据如果不太大的话,性能也没有问题。
------解决方案--------------------
用缓存,值得你拥有!