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

转载 2012年03月21日 11:08:36

       创建和配置ASP.NET Session状态数据库

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

  1.创建用于存储ASP.NET Session的数据库(远程、本地皆可,使用数据库用户身份认证)
  在Windows\Microsoft.NET\Framework/V2.0.50727目录下使用如下命令:
  aspnet_regsql.exe -S <SQL Server IP> -U <User Name> -P <Password> -E -ssadd -sstype c -d <Database Name>
  命令执行后就会成功建立起用于存储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

asp.net SessionState的sqlserver模式的配置及使用

1.由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线。(dll变动的时候导致Session丢失) 2.有一种方法可以长期保存session,那就是s...
  • aiouwen521
  • aiouwen521
  • 2014年01月03日 15:06
  • 6690

Session 共享服务器 Asp.net SqlServer共享Session

需求:   公司下派任务,之前的网站是一台服务器,由于用户过多,负载过大,现在老大要求多加一台服务器。加就加贝,应该跟我这DEV没有 关系吧,应该不会碰到Source的吧。但是,之前网站有...
  • chengmodelong
  • chengmodelong
  • 2015年05月22日 10:17
  • 649

asp.net 用sqlserver 实现session共享 (100%成功)

  • 2010年07月23日 21:50
  • 3KB
  • 下载

asp.netSession共享的解决方案

1.iis7.0webconfig配置  2.截取类,重置sessionid的值 namespace aspnetstat...
  • paolei
  • paolei
  • 2014年09月03日 17:51
  • 3035

ASP.NET中如何正确使用Session

Asp.Net中的Session要比Asp中的Session灵活和强大很多,同时也复杂很多;看到有一些Asp.Net开发人员报怨说Session不稳定,莫名其妙的丢失,其实这正是Asp.Net改进的地...
  • Bens2014
  • Bens2014
  • 2014年06月01日 21:06
  • 765

asp.net中cookie和session的区别和相关使用

彻底研究了下cookie和session的原理,发现了很多有趣的东西,原来我的很多想法和制定协议的那些大神们也有相同之处! cookie是存放于用户的本地的机器上的小文件,由浏览器创建和读写这个...
  • wangyh_128
  • wangyh_128
  • 2014年08月14日 11:21
  • 770

asp.net获取session进行简单的用户登录验证。

.net 获取session 用于简单的用户登录验证。
  • hoho_12
  • hoho_12
  • 2016年03月31日 12:02
  • 6442

asp.net mvc 用Redis实现分布式集群共享Session

1、这两天研究Redis搞分布式session问题,网上找的资料都是用ServiceStack.Redis来实现的,但是在做性能测试的时候发现最新的v4版本有限制每小时候最多请求6000次,因为官网开...
  • benbenchong_ok
  • benbenchong_ok
  • 2016年04月28日 11:20
  • 1168

详解Session分布式共享(.NET CORE版)

一、前言&回顾        在上篇文章Session分布式共享 = Session + Redis + Nginx中,好多同学留言问了我好多问题,其中印象深刻的有:nginx挂了怎么办?采用R...
  • jiangfei009003
  • jiangfei009003
  • 2017年05月02日 09:54
  • 2232

Asp.Net Cookie 和 Session 的编写、读取 和 删除

一、Cookie(分两种操作方式) (一)第一种操作方式 #region 第一种操作方式 //(一)未带子健的 Cookie //1.编写(创建 和 修改 一样) HttpCookie cookie...
  • lichunlin1994
  • lichunlin1994
  • 2016年12月12日 00:01
  • 1180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用SQL Server存储ASP.NET Session变量
举报原因:
原因补充:

(最多只允许输入30个字)