平时保存Session,其实是把Session存到服务器的w3wp.exe这个工作进程中,但是如果要做服务器集群,那么就必须要解决Session跨域访问问题,下面有几种解决方案
一:另外搞一台专门存Session的服务器,在<system.web>下配置一个节点<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:1111"/>,开发中不用
二:把Session存到数据库中
1>创建一个名叫ASPSTATE的数据库
2>找到C:WindowsMicrosoft.NETFramework64v4.0.30319这个路径下的aspnet_regsql.exe文件,运行安装一下(解决权限问题)
执行完第二步ASPSTATE这个数据库就会出现以上这些表,微软默认建好的,不用管。
3>C:WindowsMicrosoft.NETFramework64v4.0.30319这个路径下的这个sql文件:InstallPersistSqlState.sql,把这个文件拖到Sql Server中执行一下
执行完成后,数据库就多出这两个表
4>在项目中的web.config文件中<system.web>节点下添加<sessionState mode="StateServer" />,stateConnectionString这个属性不写就默认把session存到下图你配置的数据库里
5>配置完成后,跟平常一样Session["LoginUserInfo"] = LoginUserInfo;这样存数据就行,取数据也是,注意如果存对象,必须先序列化再存
三:存数据到Memcache中
四:存数据到Redis中