session如果是存在进程内的话,当进程重启,session数据就会丢失。
所以就找到了个办法,不吧session放在进程内,而是放在服务器上。这样子只要服务器不重启,session数据就不会丢失.
1.开始服务
开始本机上的asp.net state service 服务
2.更改配置文件
在system.web下添加
<sessionState mode="StateServer" stateConnectionString="tcpip=xxxxxxx">
</sessionState>
//mode设置session模式 此处是表示存在服务上不存在进程中 后面的是连接的地址
3.更改注册表值
将HKEY_LOCAL_MACHINE\SYSTEM\CURRENTControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection的值改为1
注意:因为本身就是序列化传输,所以如果是对象的话,得先打上序列化特性
还有保存在数据库的方法,但是效率太差,本文的方法也不好,最好是用Memcach+cookie代替session。