2012-01-27 81 views
0

我使用的jqGrid控制在ASP.NET应用程序时使用的jqGrid会话状态。导出到Excel功能给我带来麻烦。代码进入负载平衡的环境,因此,我将会话状态保存为SQL。这需要将任何转储到会话中的序列化。任何人都可以帮助我确定如何解决这个问题吗?无法序列导出到Excel

在此吹起来:

if (JQGrid.AjaxCallBackMode != AjaxCallBackMode.None)
{
//save the last grid state in session - to be used for exporting
Session["gridFilterPageState"] = JQGrid.GetState();
}

这是错误:
无法序列化会话状态。在'StateServer'和'SQLServer'模式下,ASP.NET将序列化会话状态对象,因此不允许使用不可序列化的对象或MarshalByRef对象。如果自定义会话状态存储在“自定义”模式下进行类似的序列化,则适用相同的限制。

回答

0

你有没有想过,你把你的状态在globaly共享对象的解决方案,通过一个ID标识,和你的ID存储在会话状态?当然,你将不得不处理一些锁,但如果我不能序列化的东西,但需要跨请求只有一个用户,我做一个共享的持有者,一些词典(ID,对象)或什么的,并保存ID在会话。

+0

我觉得你的情况的C#即时通讯谈论一个静态对象 – Luke 2012-01-27 15:31:05