最近做一个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 toStateServer.
原文地址:http://msdn.microsoft.com/en-us/library/ms178586.aspx
突然有种顿悟的感觉。原来是因为我session里存储的是一个类的实体,但是这个类并不是可序列化的,由此导致了问题的产生。
解决方案就是在类的开始部分加上[Serializable()],如下:
[Serializable()]
public class SYSUSER
{
……
}
问题解决。