.Net进程外session配置

目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷:

  • 进程依赖性:ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序。所以当inetinfo.exe进程崩溃时,这些信息也就丢失。另外,重起或者关闭IIS服务都会造成信息的丢失。
  • Session状态使用范围的局限性:刚一个用户从一个网站访问到另外一个网站时,这些Session信息并不会随之迁移过去。例如:facebook网站的WWW服务器可能不止一个,一个用户登录之后要去各个频道浏览,但是每个频道都在不同的服务器上,如果想在这些WWW服务器共享Session信息怎么办呢?
  • Cookie的依赖性:实际上客户端的Session信息是存储与Cookie中的,如果客户端完全禁用掉了Cookie功能,他也就不能享受到了Session提供的功能了。

鉴于ASP Session的以上缺陷,微软的设计者们在设计开发 ASP.NET Session时进行了相应的改进,完全克服了以上缺陷,使得ASP.NET Session成为了一个更加强大的功能。

解决方案:

将服务器Session信息存储在进程外

配置步骤:

  1、开启 ASP.NET状态服务:cmd状态下:services.msc

  2、配置web.config文件,在system.web下加入如下配置

1 <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424">

  3、补充如果是远程,会报如下错误

注册表中需改状态值cmd命令下:regedit;

路径:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesaspnet_stateParameters

 

0:只能自己访问;1:其他机器也可以访问当前的服务状态

搞定~

原文地址:https://www.cnblogs.com/chenyanbin/p/11178876.html