1. 程式人生 > >Session在StateServer或SQLServer模式下無法序列化會話狀態

Session在StateServer或SQLServer模式下無法序列化會話狀態

當修改Session的預設模式InProc為StateServer 或 SQLServer 時,程式報錯如下:
無法序列化會話狀態。在“StateServer”或“SQLServer”模式下,ASP.NET 將序列化會話狀態物件,因此不允許使用無法序列化的物件或 MarshalByRef 物件。如果自定義會話狀態儲存在“Custom”模式下執行了類似的序列化,則適用同樣的限制

堆疊跟蹤裡:程式集"DataModel,version=1.0.0.0...."中的型別"DataModel.DataManager"未標記為可序列化

解決辦法:

在操作Session賦值時變數不能被序列化,於是試著在DataManager類上新增 [Serializable]。問題解決

[Serializable]
public class ManagerData
{
    ...

}