当我们在Web.Config中设置
Session的存储方式是StateServer或SQLServer时,如下:
<configuration >
<system.web >
<sessionState mode="StateServer" ></sessionState >
</configuration >
有时候程序会提示下面的错误:
无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。提示该错误的原因大部分是我们在Session存储了自定义类,这时只要将我们的自定义加上[Serializable]特性就可以了,如下:
[Serializable]
public class MyClass
{
...
}
但需注意是的,如果MyClass继承了父类的话,父类也要加上[Serializable]特性才可以的。