无法使用stateserver序列化会话状态

rum*_*umi 3 c# asp.net serialization

我得到以下错误,并想知道我们是否可以使System.Data.Linq.EntitySet可序列化

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

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Web.HttpException:无法序列化会话状态.在"StateServer"和"SQLServer"模式下,ASP.NET将序列化会话状态对象,因此不允许使用不可序列化的对象或MarshalByRef对象.如果自定义会话状态存储在"自定义"模式下完成类似的序列化,则适用相同的限制.

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[SerializationException:在程序集中输入'System.Data.Linq.EntitySet`1 [[NES.HiLo.Da​​ta.DAO.UserResource,NES.HiLo.Da​​ta,Version = 1.0.5012.39381,Culture = neutral,PublicKeyToken = null]]' 'System.Data.Linq,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'未标记为可序列化.] System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)+7738715 System.Runtime.Serialization.FormatterServices .GetSerializableMembers(Type type,StreamingContext context)+258 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()+111 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj,ISurrogateSelector surrogateSelector,StreamingContext context ,SerObjectInfoInit serObjectInfoInit,IFormatterConverter转换器,ObjectWriter objectWriter)+422 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj,ISurrogateSelector surrogateSelector,StreamingContext context,SerObjectInfoInit serObjectInfoInit,IFormatterConverter converter,ObjectWriter objectWriter)+51 System.Runtime.Serialization.Formatters.Binary.ObjectWriter .Write(WriteObjectInfo objectInfo,NameInfo memberNameInfo,NameInfo typeNameInfo)+7636088 System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph,Header [] inHeaders,__BinaryWriter serWriter,Boolean fCheck)+461 System.Runtime.Serialization. Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream,Object graph,Header [] headers,Boolean fCheck)+134 System.Web.Util.AltSerialization.WriteValueToStream(Object value,BinaryWriter writer)+1577BinaryWriter作者)+1577

Mic*_*haC 7

该异常实际上已经告诉您问题是什么,EntitySet不可序列化.因此,如果使用会话数据库功能,则无法将其存储在会话状态中.

EntitySet不实现/支持它.因此,要将其存储在会话状态中,您必须将数据读入您自己的对象,然后将其保存为例如.或者只是不要尝试使用会话状态来"持久化"那些类型的对象,因为通常你不想这样做(没有最佳实践).