本人在项目中遇到一个问题,特来这里向各位大虾求救。
问题是这样的,现在一个web程序,页面default.aspx里会加载一个用户控件,用户控件页面上有个按钮,然后用户控件是通过
placeholder加载到default.aspx页面里的,包含在updatepanel里。
然后在用户控件里的button事件里,通过读取数据库数据,生成了Excel,数据保存到一个byte数组,叫reportbytes,然后
通过scriptmanager.registstarupscript来新开一个.ashx文件来处理excel下载,在ashx里的ProcessData函数里
根据Session["report"]读取之前用户控件里生成的reportbytes数组,下载excel到客户端。原来程序是通过Session来存储byte数组来在用户控件和ashx文件里传递的,但是今天突然出现,byte数组的字节数过大,导致ashx里读取的Session值为null(具体原因还未知,估计和IIS server有关系).现在想知道,如果不用Session来存储这个字节数值的话,还有别的办法,可以把这个自己数组从用户控件里传递到ashx里吗?不胜感谢。
可以使用缓存来存储
加个redis服务器,数据放redis。一个请求对应1个key,找到对应的byte数组
h5的话可以用localStorage来储存
赋值:localStorage.setItem("这里是键", "这里是值");
取值:localStorage.getItem("这里是键");
删除:localStorage.removeItem("这里是键");