高清国产av一区二区三区_亚洲欧美日韩在线_无码熟妇人妻av在线影片免费_在线无码一级伊伊_爽好舒服高H自慰软件_亚洲熟女区偷拍区高清区_午夜福利影院啪啪_亚洲国产黄片在线播放_中文字幕日韩精品乐乐影院_久久国产亚洲日韩欧美精品

掃描二維碼關(guān)注

首頁 APP開發(fā)小程序開發(fā) 微信公眾號 網(wǎng)站建設(shè) 營銷推廣 經(jīng)典案列 產(chǎn)品服務(wù) 關(guān)于我們

“學(xué)習(xí)不僅是掌握知識”

向書本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識,
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造

ASP.NET 中Session的狀態(tài)保持方式

2019/3/14 8:48:36

ASP.NET 中Session的狀態(tài)保持方式

ASP.NET提供了Session對象,從而允許程序員識別、存儲和處理同一個瀏覽器對象對服務(wù)器上某個特定網(wǎng)絡(luò)應(yīng)用程序的若干次請求的上下文信息。Session對應(yīng)瀏覽器與服務(wù)器的同一次對話,在瀏覽器第一請求網(wǎng)絡(luò)應(yīng)用程序的某個頁面時,服務(wù)器會觸發(fā)Session_onStart事件;在對話超時或者被關(guān)閉的時候會觸發(fā)Session_onEnd 事件。程序員可以在代碼中響應(yīng)這兩個事件來處理與同一次對話相關(guān)的任務(wù),如開辟和釋放該次對話要使用的資源等。

   在ASP.NET的程序中要使用Session對象時,必須確保頁面的@page指令中EnableSessionState屬性是True或者Readonly,并且在web.config文件中正確的設(shè)置了SessionState屬性。

  ASP.NET中Session的狀態(tài)保持是由web.config文件中的<system.web>標(biāo)記下的<sessionstate>標(biāo)記的mode屬性來決定的。該屬性有四種可能的值:Off、Inproc、StateServer和SQlServer.

  設(shè)為Off會禁用Session.

  Inproc是缺省的設(shè)置,這種模式和以前的ASP的會話狀態(tài)的方法是類似的,會話的狀態(tài)會被保存在ASP.NET進(jìn)程中,它的優(yōu)點(diǎn)是顯而易見的:性能。進(jìn)程內(nèi)的數(shù)據(jù)訪問自然會比夸進(jìn)程的訪問快。然而,這種方法Session的狀態(tài)依賴于ASP.NET進(jìn)程,當(dāng)IIS進(jìn)程崩潰或者正常重起啟時,保存在進(jìn)程中的狀態(tài)將丟失。

  為了克服Inproc模式的缺點(diǎn),ASP.NET提供了兩種進(jìn)程外保持會話狀態(tài)的方法。

  ASP.NET首先提供了提供了一個Windows服務(wù):ASPState,這個服務(wù)啟動后,ASP.NET應(yīng)用程序可以將mode屬性設(shè)置為“SateServer”,來使用這個Windows服務(wù)提供的狀態(tài)管理方法。

  除了在web.config文件中設(shè)置mode屬性為StateServer外,還必須設(shè)置運(yùn)行StateServer服務(wù)器的IP地址和端口號.如果在IIS所在的機(jī)器運(yùn)行StateServer則IP地址就是127.0.0.1,端口號通常是42424.配置如下:

mode=”StateServer”

stateConnectionString="tcpip=127.0.0.1:42424"

    使用這種模式,會話狀態(tài)的存儲將不依賴IIS進(jìn)程的失敗或者重啟,會話的狀態(tài)將存儲在StateServer進(jìn)程的內(nèi)存空間中。

   另一種會話狀態(tài)模式是SQLServer模式。這種模式是將會話的狀態(tài)保存在SQL Server數(shù)據(jù)庫中的。使用這種模式前,必須至少有一臺SQL Server服務(wù)器,并在服務(wù)器中建立需要的表和存儲過程。.NET SDK提供了兩個腳本來簡化這個工作:InstallSqlState.sql和UnInstallSqlState.sql。這兩國文件存放在下面路徑中:

  <%SYSTEMDRIVER%>\Winnt\Microsoft.NET\Framework\<%version%>\

要配置SQL Server 服務(wù)器,可以在命令行中運(yùn)行SQL Server提供的命令行工具osql.exe

  osql -s [server name] -u [user] -p [password] <InstallSqlState.sql

例如:

  osql -s (local) -u as -p “”-i  InstallSqlState.sql

做好必要的數(shù)據(jù)庫準(zhǔn)備工作后,將web.config文件中的sessionstate元素的mode屬性改為”sqlserver”,并指定SQL連接字符串。具體如下:

  mode="SQLServer"

    sqlConnectionString="data source=127.0.0.1;userid=sa;password=;Trusted_Connection=yes"

使用SQLServer模式處了可以使Session的狀態(tài)不依賴于IIS服務(wù)器之外,還可以利用SQL Server的集群,使?fàn)顟B(tài)存儲不依賴于單個的SQL Server,這樣就可以為應(yīng)用程序提供極大的可靠性。


深圳市南山區(qū)南山街道南海大道西桂廟路北陽光華藝大廈1棟4F、4G-04

咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967

精銳軟件

Copyright? 2018-2023 深圳精銳軟件技術(shù)有限公司 All Rights Reserved. ICP備案號:粵ICP備18108116號-8 公安備案號:粵公網(wǎng)安備44030502009460號