如果使用StateServer或SQLServer,会遇到的问题。。。。

 

  但如果使用StateServer或SQLServer,则要求val的类型必须是一个可序列化类型,因为ASP.NET应用在于状态服务器之间交换数据时,需要对对象进行序列化。如果val不可序列化(有私有域/属性并且没有指定自定义序列化特性),则会在运行时出现如下异常:

 

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

 

解决方法有这样几种:  

  1 尽量使用基本类型的对象来存放数据  

  2 自定义类型只使用公有域/属性  

  3 为自定义类型实现序列化特性

在类的上边加上

[Serializable]

posted on 2009-07-01 13:40  小龙龙  阅读(338)  评论(0编辑  收藏  举报

导航