您的位置:首页 > 编程语言 > ASP

ASP Session进程外存储(分布式Web服务器Session状态保持)

2017-12-31 17:40 375 查看
一、Session默认存储在W3WP.exe进程中(进程内存储),该方式速度快,但是内存小,易丢失(断电、服务器意外停止会丢失)。

二、Session分布式状态保持:(Session进程外存储,存放在状态保持服务器中):(不同的Web服务器(分布式)共享Session)(此时Session中的数据(对象)必须支持序列化)

1、启动服务:开启"ASP.NET 状态服务"(进程中会多一个aspnet_state.exe的进程)

2、配置文件(Web.config)添加配置:

<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424"/> (Session存在Session状态保持服务器中)(localhost表示存放Session的服务器的地址)   

3、如果SessionState服务器不是本地服务器(不是localhost),那么需要修改注册表,允许远程使用:

位置:C:\WINDOWS\Microsoft.NET\Framework\v4.0.03019 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters  把0改为1。

三、Session分布式状态保持:(Session进程外存储,存放在数据库中)

1、新建aspstate数据库(名称固定的数据库)

2、以管理员身份运行aspnet_regsql.exe   位置:C:\WINDOWS\Microsoft.NET\Framework\v4.0.03019   (安装向导中选择aspstate数据库) (aspstate数据库会新建一些数据表)

3、运行sql脚本:InstallPersistSqlState.sql  (需要使用SQLServerAgent服务)  (临时储存区:InstallSqlState.sal & UninstallSqlState.sql 永久储存区:InstallPersistSqlState.sql & UninstallPersistSqlState.sql) (运行后会多出两张数据表,用于存放Session)  位置:C:\WINDOWS\Microsoft.NET\Framework\v4.0.03019

4、配置文件(Web.config)添加配置:<sessionState mode="SQLServer"  />    (不用指定数据库连接字符串,默认放在aspstate数据库中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp