[ASP.net] 使用StateServer時,把自訂物件儲存在Session造成「無法序列化工作階段狀態」的注意事項
照著此篇文章
如何讓 ASP.NET 使用 Session 資料時不要再自動消失
把StateServer開啟後
若發生
無法序列化工作階段狀態。在 'StateServer' 和 'SQLServer' 模式中,ASP.NET 將序列化工作階段狀態物件,因此不允許無法序列化的物件或 MarshalByRef 物件。在 'Custom' 模式中,自訂工作階段狀態存放區執行類似的序列化作業時,也會有同樣的限制。
(以上畫紅線的LoginInfo是自訂類別)
解決辦法:自訂類別加一個Serializable屬性標記
.net Framework內建物件的話
目前測了一下,DataTable原本就可以儲存在Session裡
OleDbCommand物件等等(應該滿多的),則不行。