请问"无法序列化会话状态"错误的解决方法。
本帖最后由 wggfcusmq 于 2013-12-11 15:52:03 编辑
我将webconfig中的session存储模式设置为StateServer,然后在一段代码中有使用了session,如下:
DataTable dt_copy = new Storage.storehouseout.ProduceSendGoods().AutoGetKCAccount(pair, dt, gstates.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
Session[LowPriceEasilyWorn_CacheName] = dt_copy;
就报出了了如下的错误:
关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。”的问题
直接用Session[LowPriceEasilyWorn_CacheName] = new DataTable()是没有问题的。
DataTable是可序列化的呀,难道不同的DataTable还会不一样的吗?请问大家这个需要如何解决?
------解决方案--------------------DataTable 字段是什么格式的,有些字段内容无法序列化