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

首頁 > 編程 > .NET > 正文

淺議ASP.NET中Session的狀態保持方式

2024-07-10 13:08:32
字體:
來源:轉載
供稿:網友

  asp.net提供了session對象,從而允許程序員識別、存儲和處理同一個瀏覽器對象對服務器上某個特定網絡應用程序的若干次請求的上下文信息。session對應瀏覽器與服務器的同一次對話,在瀏覽器第一請求網絡應用程序的某個頁面時,服務器會觸發session_onstart事件;在對話超時或者被關閉的時候會觸發session_onend 事件。程序員可以在代碼中響應這兩個事件來處理與同一次對話相關的任務,如開辟和釋放該次對話要使用的資源等。

  在asp.net的程序中要使用session對象時,必須確保頁面的@page指令中enablesessionstate屬性是true或者readonly,并且在web.config文件中正確的設置了sessionstate屬性。

  asp.net中session的狀態保持是由web.config文件中的標記下的標記的mode屬性來決定的。該屬性有四種可能的值:off、inproc、stateserver和sqlserver。

  設為off會禁用session。

  inproc是缺省的設置,這種模式和以前的asp的會話狀態的方法是類似的,會話的狀態會被保存在asp.net進程中,它的優點是顯而易見的:性能。進程內的數據訪問自然會比夸進程的訪問快。然而,這種方法session的狀態依賴于asp.net進程,當iis進程崩潰或者正常重起啟時,保存在進程中的狀態將丟失。

  為了克服inproc模式的缺點,asp.net提供了兩種進程外保持會話狀態的方法。

  asp.net首先提供了提供了一個windows服務:aspstate,這個服務啟動后,asp.net應用程序可以將mode屬性設置為“sateserver”,來使用這個windows服務提供的狀態管理方法。

  除了在web.config文件中設置mode屬性為stateserver外,還必須設置運行stateserver服務器的ip地址和端口號.如果在iis所在的機器運行stateserver則ip地址就是127.0.0.1,端口號通常是42424.配置如下:

  mode=”stateserver”
  stateconnectionstring="tcpip=127.0.0.1:42424"

  使用這種模式,會話狀態的存儲將不依賴iis進程的失敗或者重啟,會話的狀態將存儲在stateserver進程的內存空間中。

  另一種會話狀態模式是sqlserver模式。這種模式是將會話的狀態保存在sql server數據庫中的。使用這種模式前,必須至少有一臺sql server服務器,并在服務器中建立需要的表和存儲過程。.net sdk提供了兩個腳本來簡化這個工作:installsqlstate.sql和uninstallsqlstate.sql。這兩國文件存放在下面路徑中:

  /winnt/microsoft.net/framework//

  要配置sql server 服務器,可以在命令行中運行sql server提供的命令行工具osql.exe

  osql -s [server name] -u [user] -p [password]

  例如:

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

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

  mode="sqlserver"
  sqlconnectionstring="data source=127.0.0.1;userid=sa;password=;trusted_connection=yes"

  使用sqlserver模式處了可以使session的狀態不依賴于iis服務器之外,還可以利用sql server的集群,使狀態存儲不依賴于單個的sql server,這樣就可以為應用程序提供極大的可靠性。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青冈县| 宁明县| 德清县| 顺昌县| 辉南县| 平远县| 富裕县| 沙坪坝区| 东丽区| 左权县| 微博| 兴宁市| 浦东新区| 榆社县| 吉林省| 台山市| 桑日县| SHOW| 南汇区| 巢湖市| 利津县| 望谟县| 凤庆县| 濮阳县| 尉氏县| 德清县| 子长县| 福泉市| 昭觉县| 广水市| 株洲市| 肃南| 连江县| 丰宁| 合江县| 灵武市| 石狮市| 保定市| 海口市| 白水县| 磐安县|