Asp.net 导出到excel时无法使用jqGrid序列化会话状态

Asp.net 导出到excel时无法使用jqGrid序列化会话状态,asp.net,jqgrid,export-to-excel,Asp.net,Jqgrid,Export To Excel,我正在ASP.NET应用程序中使用jqGrid控件。导出到Excel功能给我带来了麻烦。代码将进入负载平衡环境,因此,我将会话状态保存到SQL。这需要序列化转储到会话中的任何内容。有人能帮我决定如何避开这个问题吗 这里正在爆炸: 如果(JQGrid.AjaxCallBackMode!=AjaxCallBackMode.None) { //保存会话中的最后一个网格状态-用于导出 会话[“gridFilterPageState”]=JQGrid.GetState(); } 这就是错误: 无法序列化会

我正在ASP.NET应用程序中使用jqGrid控件。导出到Excel功能给我带来了麻烦。代码将进入负载平衡环境,因此,我将会话状态保存到SQL。这需要序列化转储到会话中的任何内容。有人能帮我决定如何避开这个问题吗

这里正在爆炸:

如果(JQGrid.AjaxCallBackMode!=AjaxCallBackMode.None)
{
//保存会话中的最后一个网格状态-用于导出
会话[“gridFilterPageState”]=JQGrid.GetState();
}

这就是错误:

无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET将序列化会话状态对象,因此不允许使用不可序列化的对象或MarshalByRef对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则同样的限制也适用。

您是否考虑过一种解决方案,将状态放在全局共享对象中,由ID标识,并将ID存储在会话状态中?当然,您必须处理一些锁,但是如果我无法序列化某个东西,但仅在一个用户的请求中需要它,我会创建一个共享持有者、一些字典(ID、对象)或其他东西,并将ID保存在会话中

我想在你的例子中,我说的是一个静态物体