本文介绍ASP.NET的Session State,根据Session State 标记的 mode 属性选择的四种不同的状态管理器实现。

为此ASP 的运用者不得不自己手艺将会话信息以会话 ID 为主键同步到外部数据库中,以缓解类似问题。

ASP.NET的Session State(ASP,net)  Session State ASP.NET 第1张

而在 ASP.NET 中,由于设计时就考虑了这些问题,能够防止这些约束:1.支撑进程外的状况办理,经过独立状况办理服务或 SQL Server 状况服务器办理会话状况2.支撑不运用 Cookie 的状况保护,经过在 URL 中主动添加会话 ID 来防止运用 Cookie 3.经过独立的状况办理服务或SQL Server 状况服务器支撑负载均衡时同步运用会话信息完成这些特性的正是上节说到的Session StateModule.InitModuleFromConfig 函数中,依据Session State 符号的 mode 特点挑选的四种不同的状况办理器完成。

以下内容为程序代码:

  1. <system.web>
  2. <sessionStatemode="InProc"stateConnectionString="tcpip=127.0.0.1:42424"
    stateNetworkTimeout="10"sqlConnectionString="datasource=127.0.0.1;
  3. IntegratedSecurity=SSPI"cookieless="false"timeout="20"/>
  4. </system.web>

Off形式制止会话办理,一起 ASP.NET 还答应经过在页面中以 Enable Session State 特点细粒度办理页面的会话支撑状况以下内容为程序代码:

  1. <%@PageEnableSessionState="True|False|ReadOnly"%>

InProc 形式兼容曾经 ASP 的战略,在 ASP.NET 同一进程空间内完成根据内存的会话状况办理,速度最快但遭到与 ASP 相同的约束;STATE SERVER 形式经过 ASP.NET 独立装置的 ASP.NET State Service 服务(aspnet_State.exe),以 stateConnectionString 指定的IP和端口呼应会话状况服务;SQLServer 形式则经过 sqlConnectionString 指定的 SQL Server 服务器,以内存暂时表(以 InstallSqlState.sql建库,运用 tempdb 内存数据库)或独立表(以InstallPersistSqlState.sql 监控,运用独立的 ASPState 库)保护会话状况。

这四种不同的状况办理器,在功能上据《Performance Tuning and Optimizing ASP.NET Appliation》一书的测验,相对值如下:以下为引证:Table 4-1: Normalized TTLB(Time to Last Byte) bySession State Mode (in Milliseconds per 100 Requests)

CONCURRENT BROWSERS MODE = OFF MODE = INPROC MODE = STATE SERVER MODE = SQLSERVER 1 7.81 4.54 8.27 8.47 5 28.28 20.25 27.25 29.29 10 89.38 46.08 77.29 85.11 Table 4-2: Average Requests per Second bySession State Mode CONCURRENT BROWSERS MODE = OFF MODE = INPROC MODE = STATE SERVER MODE = SQLSERVER 1 18.86 24.17 18.31 18.11 5 21.66 25.74 21.54 21.34 10 17.23 23.8 18.11 17.6能够看到,无论是从 TTLB 仍是每秒均匀恳求数来说,进程外状况办理器的功能都是能够令人承受的,当然还需要针对状况办理状况在编写代码时做相关优化。不过要运用进程外状况办理器,则保存在会话中的目标遭到有必要进步二进制序列化支撑的约束。

从运用视点来看,状况办理器实际上都是由上节说到的 HttpSessionModule 树立办理,并经过 Http Session State 接口供给拜访的,结构如下图:MSDN 上的 Underpinnings of theSession State Implementation in ASP.NET 一文十分具体的解说了几种不同状况办理器的原理和运用,这儿就不罗嗦了。

【修改引荐】

  1. ASP.NET中的数据源控件
  2. 介绍ASP.NET的XML Web服务运用
  3. ASP.NET应用程序的web.config文件
  4. 概述ASP.NET XML Web服务
  5. ASP.NET中完成HTTP恳求
转载请说明出处
知优网 » ASP.NET的Session State(ASP,net)

发表评论

您需要后才能发表评论