最近做一個ASP.NET應用程序,使用sessionState保存會話狀態,之前也一直用這個方法,都沒有遇到問題。
可是這次只要在web.config文件中加入<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="60"/>
運行程序的時候就會報Internal Server Error,百思不得其解。
後來經過一番調查,也沒有得到好的解決方案。
最終經過翻閱msdn,看到了這樣一句話:Objects stored in session state must be serializable if the mode is set to StateServer.
原文地址:http://msdn.microsoft.com/en-us/library/ms178586.aspx
突然有種頓悟的感覺。原來是因爲我session裏存儲的是一個類的實體,但是這個類並不是可序列化的,由此導致了問題的產生。
解決方案就是在類的開始部分加上[Serializable()],如下:
[Serializable()]
public class SYSUSER
{
……
}
問題解決。