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

时间:2022-05-21 15:47:59

错误描述:

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

问题描述:

        我使用了struct 结构体型Bill,并把多个struct 型Bill放到一个ArrayList类型的array变量中,试图将array赋值给Session,在另一个页面中读取Session,系统报错!!!

 

解决办法:

        在网上查找问题后,得出的结论为我定义的变量不能被序列化,于是试着在Bill上添加 [Serializable]。例如:

[Serializable]
public struct Bill
{
    public string Name;
    public string Unit;
    public string Count;
}

        问题解决!!!