国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

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

2024-07-10 13:06:12
字體:
供稿:網(wǎng)友

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

   在asp.net的程序中要使用session對(duì)象時(shí),必須確保頁(yè)面的@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會(huì)禁用session.

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

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

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

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

 mode=”stateserver”

 stateconnectionstring="tcpip=127.0.0.1:42424"

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

   另一種會(huì)話狀態(tài)模式是sqlserver模式。這種模式是將會(huì)話的狀態(tài)保存在sql server數(shù)據(jù)庫(kù)中的。使用這種模式前,必須至少有一臺(tái)sql server服務(wù)器,并在服務(wù)器中建立需要的表和存儲(chǔ)過程。.net sdk提供了兩個(gè)腳本來簡(jiǎn)化這個(gè)工作:installsqlstate.sql和uninstallsqlstate.sql。這兩國(guó)文件存放在下面路徑中:

  <%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ù)庫(kù)準(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)存儲(chǔ)不依賴于單個(gè)的sql server,這樣就可以為應(yīng)用程序提供極大的可靠性。 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桂阳县| 唐海县| 水富县| 淮阳县| 响水县| 根河市| 昭苏县| 年辖:市辖区| 锡林郭勒盟| 麟游县| 宁海县| 抚宁县| 普兰店市| 潮安县| 阿巴嘎旗| 嘉善县| 南投县| 中西区| 刚察县| 陕西省| 东至县| 裕民县| 永康市| 静宁县| 宜阳县| 南皮县| 广昌县| 富阳市| 益阳市| 沽源县| 仁化县| 玉门市| 新丰县| 如东县| 河间市| 鄢陵县| 大邑县| 高安市| 广西| 堆龙德庆县| 石泉县|