使用SQL Server存储ASP.NET Session变量

本文介绍如何在基于NLB环境下配置ASP.NET Web应用程序的Session存储于数据库中,并提供了详细的步骤和注意事项,包括创建数据库、配置Web.Config文件以及调整SQL Server配置。

在基于NLB(网络负载平衡)环境下的ASP.NET Web应用程序开发,我们需要将Session存储在数据库中供多个Web应用程序调用,以下为配置方法及注意事项。

  1.创建用于存储ASP.NET Session的数据库(远程、本地皆可,使用数据库用户身份认证)


  在Windows\Microsoft.NET\Framework/V2.0.50727 (如果是.net 4.0 切换到相应目录)目录下使用如下命令:


  aspnet_regsql.exe -S <SQL Server IP> -U <User Name> -P <Password> -ssadd -sstype c -d <Database Name>

       例如: aspnet_regsql.exe -S 192.168.7.8 -U sa -P 1q2w#E$R -ssadd -sstype c -d An.Epass.ToolKit


  命令执行后就会成功建立起用于存储ASP.NET Session变量的数据库了。

  2.Web.Config文件配置项


  我们需要在ASP.NET Web应用程序中的Web.Config文件修改sessionState配置项以使Session状态数据库生效。


配置节点如下:

以下为引用的内容:
<sessionState mode="SQLServer"
            sqlConnectionString="server=<Server IP>;database=<Database Name>;uid=<User Name>;pwd=<Password>;"
allowCustomSqlDatabase="True"
            cookieless="false" 
            timeout="20" />

  3.注意在进行系统测试(主要是负载测试)的时候,因为数据库访问负载的增加,需要调整SQL Server相应超时的配置项以适应负载。(默认值为10,请适度进行调整。)

  ASP.NET Session状态数据库数据模型
  1.ASPStateTempSessions表定义

列名类型描述
SessionId nvarchar(88) Session ID + application ID
Created datetime Date and time session was created (UTC)
Expires datetime Date and time session expires (UTC)
LockDate datetime UTC date and time session was locked
LockDateLocal datetime Local date and time session was locked
LockCookie int Lock ID
Timeout int Session timeout in minutes
Locked bit 1=Session locked, 0=Session not locked
SessionItemShort varbinary(7000) Serialized session state (if <= 7,000 bytes)
SessionItemLong image Serialized session state (if > 7,000 bytes)
Flags int Session state flags (1=Uninitialized session)

  2.ASPStateTempApplications表定义
列名类型描述
AppId int Application ID
AppName char(280) Application name






http://www.360doc.com/content/11/0420/07/5735238_110920671.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安得权

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值