亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[ASP.NET]配置使用SQL Server保存會話狀態

系統 2224 0
原文: [ASP.NET]配置使用SQL Server保存會話狀態

  會話狀態是ASP.NET應用程序狀態的其中一種,這種狀態的特點是以用戶為單位,每個會話對應一個用戶,也就是說在該用戶的整個訪問過程,會話狀態保存的數據都會持續保存于服務器的介質中,直到會話超時(即用戶超過指定時間沒有存取會話數據)。在服務器端保存會話狀態的方式有幾種,分別為:

?
1) InProc ——這種方式會話狀態保存在ASP.NET運行進程內,具體位置就是ASP.NET的Cache(高速緩存)內。
2) StateServer ——這種方式會話狀態保存在ASP.NET所帶有的Wiindows服務進程中,該服務默認是禁用的,需要人手啟動。
3) SQL Server ——這種方式會話狀態保存到SQL Server所管理的數據庫中。具體又可以分為保存在臨時數據庫,ASPState數據庫和自定義數據庫三種方式。
4) 自定義提供程序 ——這種方式要求開發人員自己開發會話狀態的提供程序,會話狀態的存取方式完全由該提供程序決定,由此可以保存在其他SQL數據庫,或者XML文件,甚至文本文件中都可以。
?
本文目的在于說明怎樣配置使用SQL Server來保存會話狀態。
整個配置過程分為兩部分:
第一部分,在ASP.NET程序運行的服務器上,配置所使用的數據庫服務器。
第二部分,在ASP.NET程序的配置文件中修改會話狀態的保存方式。
?
配置所使用的數據庫服務器
1)運行aspnet_regsql.exe程序,該程序位于目錄C:\WINDOWS\Microsoft.NET\Framework\<ASP.NET版本號>下。首先雙擊運行該程序,為ASP.NET配置SQL Server。
[ASP.NET]配置使用SQL Server保存會話狀態 選擇“下一步”
[ASP.NET]配置使用SQL Server保存會話狀態 選擇按圖中所示進行選擇,然后“下一步”
[ASP.NET]配置使用SQL Server保存會話狀態
填入與ASP.NET關聯的數據庫服務器信息,注意這里選擇的數據庫,在往后的ASP.NET應用程序中是可以改變的。填入完成之后選擇“下一步”
之后還有兩個界面,不過在那兩個界面中只需要“下一步”,沒有可選擇的信息,所以這里不列出來了。
?
2)配置會話狀態使用的數據庫庫。
正如剛才所說,使用數據庫保存會話也分三種方式,臨時數據庫(SQL Server重啟后會丟失數據)、ASPState數據庫和自定義數據庫。
注意 -ssadd, -E, -sstype 指令。
??? -ssadd 指令的功能是添加會話數據庫,默認是添加到臨時數據庫
??? -E 指令的功能是使用WINDOWS身份驗證,因為我演示的SQL Server在本機上,所以使用該指令才能連接,單獨的 -ssadd是運行不了的。
??? -sstype ?指令的功能是指定會話狀態使用哪個數據庫。隨后的參數有 t、p'和c?,分別為臨時數據庫,ASPState數據庫庫和自定義數據庫。
??? -d 的功能是在指定自定義數據庫的時候,指定該數據庫的名稱,以數據庫名稱做參數。
?
使用臨時數據庫保存會話狀態的指令
[ASP.NET]配置使用SQL Server保存會話狀態
臨時數據庫中多了兩個用于保存會話狀態信息的表。
?
使用ASPState數據庫保存會話狀態的指令
[ASP.NET]配置使用SQL Server保存會話狀態
[ASP.NET]配置使用SQL Server保存會話狀態 執行之后,在數據庫中出現了新的數據庫ASPState。其中帶有的表跟之前在臨時數據庫中的一致。
?
使用自定義數據庫TestCustom數據庫保存會話狀態的指令
[ASP.NET]配置使用SQL Server保存會話狀態
[ASP.NET]配置使用SQL Server保存會話狀態
除了擁有上述的表之外,還帶有一系列自動添加上去的存儲過程,其實這些存儲過程不是自定義數據庫才特有的。無論使用哪種數據庫,都會有這些存儲過程,只是當從一種數據庫改到另一種數據庫的時候,表會留下來,但存儲過程就會全部轉移到新使用的數據庫中。
?
想要取消使用以上的設置,只需要-ssremove -E指令。
[ASP.NET]配置使用SQL Server保存會話狀態
以上這些只能在本機的數據庫中創建會話數據庫,但正規的操作是不應該在數據庫服務器上直接進行這些操作,很可能該服務器上根本沒有ASP.NET的組件。
因此我們需要從ASP.NET程序的部署服務器,通過遠程連接來進行配置,以下將演示這一實例,通過我的計算機連接到團隊成員的遠程計算機上。
?
要先說明,在CMD中運行aspnet_regsql.exe,要進行遠程連接,需要使用-S -U -P指令,分別指定:數據庫服務器名稱/地址、連接使用的帳號和密碼。
同時必須注明,要在SQL Server中配置會話數據庫,必須具有 創建表格,創建數據庫,創建存儲過程,和MSDB的RSExecRole角色權限 。否則配置過程一定會出錯。
[ASP.NET]配置使用SQL Server保存會話狀態
以上配置指令在 119.120.74.150的機器上,使用帳號密碼均為silin建立連接,然后創建一個自定義數據庫TestCustom來保存會話狀態。
?
以上就是關于ASP.NET使用SQL Server的配置。接下來是配置文件的修改。
?
修改ASP.NET程序的配置文件
?
在ASP.NET的配置文件中找到<sessionState>區段,很可能沒有這個區段,因為存在默認設置,這里假設沒有這個區段,重新寫入。
?
<sessionState mode="SQLServer" sqlConnectionString="所需連接字符串" /> 只需要這么簡單的設置。當然還有其他設置,但要起到作用,最少只需要這兩個屬性設置就OK了。
?
完成上述設置之后,在程序中的存取的會話數據就會自動保存到數據庫中,整個編碼過程沒有任何改動。ASP.NET的這個提供程序機制,的確把代碼實現跟數據保存方式分離了。不過要注意,當把會話狀態保存到ASP.NET運行進程以外的介質時,必定會進行序列化和反序列化,因此必須注意會話狀態中保存的類型是否能夠進行序列化。

[ASP.NET]配置使用SQL Server保存會話狀態


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一区二区三区四区在线观看视频 | 337p色噜噜人体大胆欧美 | 亚洲毛片网| 九九热精品免费视频 | 成人永久免费视频网站在线观看 | 麻豆日韩区久久综合 | 午夜影院操 | 一区二区在线精品免费视频 | 五月天在线婷婷 | 久久免费精品国产视频 | 天天综合天天做天天综合 | 欧美另类交视频 | 国产精品香蕉在线一区二区 | 91成人影院未满十八勿入 | 亚洲欧美日韩一级特黄在线 | 亚洲丶国产丶欧美一区二区三区 | 成人a区| 久青草视频免费视频播放线路1 | 亚洲 欧美 精品 | 国产精品视频久久 | 国产女主播喷出白浆视频 | 日韩城人免费 | 久久99热精品免费观看 | 99re这里有免费视频精品 | 精品国产一二三区在线影院 | 久热re在线视频精品免费 | 国产91成人 | 97久久精品人人澡人人爽 | 成年ssswww中国女人 | 国产成人精品久久综合 | 咪咪在线视频 | 天天草狠狠干 | 国产在线拍国产拍拍偷 | 9999人体做爰大胆 | 久久国产精品亚洲综合 | 男人在线资源 | 精品欧美一区二区精品久久 | 最新中文字幕在线播放 | 欧美国产成人在线 | 久久99久久精品国产99热 | 国内精品免费久久影院 |