首页 > 代码库 > Session进程外存储

Session进程外存储

平时保存Session,其实是把Session存到服务器的w3wp.exe这个工作进程中,但是如果要做服务器集群,那么就必须要解决Session跨域访问问题,下面有几种解决方案

一:另外搞一台专门存Session的服务器,在<system.web>下配置一个节点<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:1111"/>,开发中不用

二:把Session存到数据库中

  1>创建一个名叫ASPSTATE的数据库

  2>找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319这个路径下的aspnet_regsql.exe文件,运行安装一下(解决权限问题)

技术分享技术分享

技术分享技术分享

执行完第二步ASPSTATE这个数据库就会出现以上这些表,微软默认建好的,不用管。

  3>C:\Windows\Microsoft.NET\Framework64\v4.0.30319这个路径下的这个sql文件:InstallPersistSqlState.sql,把这个文件拖到Sql Server中执行一下

   技术分享执行完成后,数据库就多出这两个表

  4>在项目中的web.config文件中<system.web>节点下添加<sessionState mode="StateServer" />,stateConnectionString这个属性不写就默认把session存到下图你配置的数据库里

 技术分享

  5>配置完成后,跟平常一样Session["LoginUserInfo"] = LoginUserInfo;这样存数据就行,取数据也是,注意如果存对象,必须先序列化再存

三:存数据到Memcache中

四:存数据到Redis中

Session进程外存储