自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET的Session State

開發(fā) 后端
本文介紹ASP.NET的Session State,根據(jù)Session State 標(biāo)記的 mode 屬性選擇的四種不同的狀態(tài)管理器實(shí)現(xiàn)。

為此ASP 的使用者不得不自己手工將會(huì)話信息以會(huì)話 ID 為主鍵同步到外部數(shù)據(jù)庫中,以緩解類似問題。

而在 ASP.NET 中,因?yàn)樵O(shè)計(jì)時(shí)就考慮了這些問題,能夠避免這些限制:1.支持進(jìn)程外的狀態(tài)管理,通過獨(dú)立狀態(tài)管理服務(wù)或 SQL Server 狀態(tài)服務(wù)器管理會(huì)話狀態(tài)2.支持不使用 Cookie 的狀態(tài)維護(hù),通過在 URL 中自動(dòng)增加會(huì)話 ID 來避免使用 Cookie 3.通過獨(dú)立的狀態(tài)管理服務(wù)或SQL Server 狀態(tài)服務(wù)器支持負(fù)載均衡時(shí)同步使用會(huì)話信息實(shí)現(xiàn)這些特性的正是上節(jié)提到的Session StateModule.InitModuleFromConfig 函數(shù)中,根據(jù)Session State 標(biāo)記的 mode 屬性選擇的四種不同的狀態(tài)管理器實(shí)現(xiàn)。

以下內(nèi)容為程序代碼:

  1. <system.web> 
  2. <sessionState 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. </system.web> 

Off模式禁止會(huì)話管理,同時(shí) ASP.NET 還允許通過在頁面中以 Enable Session State 屬性細(xì)粒度管理頁面的會(huì)話支持狀態(tài)以下內(nèi)容為程序代碼:

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

InProc 模式兼容以前 ASP 的策略,在 ASP.NET 同一進(jìn)程空間內(nèi)實(shí)現(xiàn)基于內(nèi)存的會(huì)話狀態(tài)管理,速度最快但受到與 ASP 相同的限制;STATE SERVER 模式通過 ASP.NET 獨(dú)立安裝的 ASP.NET State Service 服務(wù)(aspnet_state.exe),以 stateConnectionString 指定的IP和端口響應(yīng)會(huì)話狀態(tài)服務(wù);SQLServer 模式則通過 sqlConnectionString 指定的 SQL Server 服務(wù)器,以內(nèi)存臨時(shí)表(以 InstallSqlState.sql建庫,使用 tempdb 內(nèi)存數(shù)據(jù)庫)或獨(dú)立表(以InstallPersistSqlState.sql 監(jiān)控,使用獨(dú)立的 ASPState 庫)維護(hù)會(huì)話狀態(tài)。

這四種不同的狀態(tài)管理器,在性能上據(jù)《Performance Tuning and Optimizing ASP.NET Appliation》一書的測試,相對(duì)值如下:以下為引用: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 還是每秒平均請(qǐng)求數(shù)來說,進(jìn)程外狀態(tài)管理器的性能都是可以令人接受的,當(dāng)然還需要針對(duì)狀態(tài)管理情況在編寫代碼時(shí)做相關(guān)優(yōu)化。不過要使用進(jìn)程外狀態(tài)管理器,則保存在會(huì)話中的對(duì)象受到必須提高二進(jìn)制序列化支持的限制。

從使用角度來看,狀態(tài)管理器實(shí)際上都是由上節(jié)提到的 HttpSessionModule 建立管理,并通過 Http Session State 接口提供訪問的,結(jié)構(gòu)如下圖:MSDN 上的 Underpinnings of theSession State Implementation in ASP.NET 一文非常詳細(xì)的解釋了幾種不同狀態(tài)管理器的原理和使用,這兒就不羅嗦了。

【編輯推薦】

  1. ASP.NET中的數(shù)據(jù)源控件
  2. 介紹ASP.NET的XML Web服務(wù)使用
  3. ASP.NET應(yīng)用程序的web.config文件
  4. 概述ASP.NET XML Web服務(wù)
  5. ASP.NET中實(shí)現(xiàn)HTTP請(qǐng)求
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-21 18:05:23

ASP.NET Ses

2009-07-28 16:57:50

ASP.NET Ses

2009-07-24 10:41:00

ASP.NET Ses

2009-07-20 17:21:43

Session狀態(tài)ASP.NET

2009-07-23 18:56:50

ASP.NET Ses

2009-08-03 10:07:20

ASP.NET Ses

2009-08-05 18:30:36

Session和CooASP.NET表單

2009-07-24 10:41:00

ASP.NET Ses

2009-07-22 18:02:26

ASP.NET Ses

2009-07-30 14:03:04

ASP.NET中的se

2009-08-03 09:45:14

ASP.NET Ses

2009-07-23 16:28:55

2009-08-03 09:17:30

ASP.NET Ses

2009-07-02 14:39:27

Session的值JSP Asp.net

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-10 09:39:25

ASP.NET網(wǎng)站性能

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-31 18:16:09

ASP.NET中的Se
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)