设为首页 收藏本站
查看: 544|回复: 0

[经验分享] 使用SQL Server存储ASP.NET Session变量

[复制链接]

尚未签到

发表于 2015-7-1 07:10:20 | 显示全部楼层 |阅读模式
  创建和配置ASP.NET Session状态数据库

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

1.创建用于存储ASP.NET Session的数据库(远程、本地皆可,使用数据库用户身份认证)
在Windows\Microsoft.NET\Framework/V2.0.50727目录下使用如下命令:
aspnet_regsql.exe -S  -U  -P  -E -ssadd -sstype c -d
命令执行后就会成功建立起用于存储ASP.NET Session变量的数据库了。

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


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

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

列名类型描述SessionIdnvarchar(88)Session ID + application IDCreateddatetimeDate and time session was created (UTC)ExpiresdatetimeDate and time session expires (UTC)LockDatedatetimeUTC date and time session was lockedLockDateLocaldatetimeLocal date and time session was lockedLockCookieintLock IDTimeoutintSession timeout in minutesLockedbit1=Session locked, 0=Session not lockedSessionItemShortvarbinary(7000)Serialized session state (if  7,000 bytes)FlagsintSession state flags (1=Uninitialized session)
2.ASPStateTempApplications表定义
列名类型描述AppIdintApplication IDAppNamechar(280)Application name  

3.使用的存储过程
[table][tr]Stored ProcedureDescription[/tr][tr][td=1,1,49%]CreateTempTables[/td][td=1,1,51%]Creates the ASPStateTempSessions and ASPStateTempApplications tables; called during setup, but not called by SqlSessionStateStore.[/td][/tr][tr][td=1,1,49%]DeleteExpiredSessions[/td][td=1,1,51%]Used by SQL Server Agent to remove expired sessions.[/td][/tr][tr][td=1,1,49%]GetHashCode[/td][td=1,1,51%]Hashes an application name and returns the hash; called by TempGetAppID.[/td][/tr][tr][td=1,1,49%]GetMajorVersion[/td][td=1,1,51%]Returns SQL Server's major version number.[/td][/tr][tr][td=1,1,49%]TempGetAppID[/td][td=1,1,51%]Converts an application name into an application ID; queries the ASPStateTempApplications table and inserts a new record if necessary.[/td][/tr][tr][td=1,1,49%]TempGetStateItem[/td][td=1,1,51%]Retrieves read-only session state from the database (ASP.NET 1.0; ASP.NET 1.1/SQL Server 7).[/td][/tr][tr][td=1,1,49%]TempGetStateItem2[/td][td=1,1,51%]Retrieves read-only session state from the database (ASP.NET 1.1).[/td][/tr][tr][td=1,1,49%]TempGetStateItem3[/td][td=1,1,51%]Retrieves read-only session state from the database (ASP.NET 2.0).[/td][/tr][tr][td=1,1,49%]TempGetStateItemExclusive[/td][td=1,1,51%]Retrieves read/write session state from the database (ASP.NET 1.0; ASP.NET 1.1/SQL Server 7).[/td][/tr][tr][td=1,1,49%]TempGetStateItemExclusive2[/td][td=1,1,51%]Retrieves read/write session state from the database (ASP.NET 1.1).[/td][/tr][tr][td=1,1,49%]TempGetStateItemExclusive3[/td][td=1,1,51%]Retrieves read/write session state from the database (ASP.NET 2.0).[/td][/tr][tr][td=1,1,49%]TempGetVersion[/td][td=1,1,51%]Marker whose presence indicates to ASP.NET 2.0 that the session state database is ASP.NET 2.0-compatible.[/td][/tr][tr][td=1,1,49%]TempInsertStateItemLong[/td][td=1,1,51%]Adds a new session, whose size is > 7,000 bytes, to the database.[/td][/tr][tr][td=1,1,49%]TempInsertStateItemShort[/td][td=1,1,51%]Adds a new session, whose size is

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82074-1-1.html 上篇帖子: SQL Server Profiler使用方法 下篇帖子: 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(6)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表