ASP.NET的SessionState有什么用

本篇内容介绍了“ASP.NET的Session State有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元海安做网站,已为上家服务,为海安各地企业和个人服务,联系电话:13518219792

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

而在 ASP.NET 中,因为设计时就考虑了这些问题,能够避免这些限制:1.支持进程外的状态管理,通过独立状态管理服务或 SQL Server 状态服务器管理会话状态2.支持不使用 Cookie 的状态维护,通过在 URL 中自动增加会话 ID 来避免使用 Cookie 3.通过独立的状态管理服务或SQL Server 状态服务器支持负载均衡时同步使用会话信息实现这些特性的正是上节提到的Session StateModule.InitModuleFromConfig 函数中,根据Session State 标记的 mode 属性选择的四种不同的状态管理器实现。

以下内容为程序代码:

  1.  

  2.  mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" 
    stateNetworkTimeout="10" sqlConnectionString="data source=127.0.0.1;

  3. Integrated Security=SSPI" cookieless="false" timeout="20" /> 

  4.  

Off模式禁止会话管理,同时 ASP.NET 还允许通过在页面中以 Enable Session State 属性细粒度管理页面的会话支持状态以下内容为程序代码:

<%@ Page EnableSessionState=" 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 接口提供访问的。

“ASP.NET的Session State有什么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网页标题:ASP.NET的SessionState有什么用
链接分享:http://myzitong.com/article/gooecd.html