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

[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條評論
主站蜘蛛池模板: 国产一区视频在线播放 | www.青草 | 黄色毛片视频免费 | 国产人成久久久精品 | 视频一区二区三区在线观看 | 深夜免费福利视频 | 日韩一区二区不卡中文字幕 | 国产手机精品一区二区 | 视频精品一区二区三区 | 久久一区| 香蕉网伊在线中文慕大全 | 91成人免费观看在线观看 | 国内精品视频九九九九 | 亚洲图片一区 | 亚洲日本久久一区二区va | 一级做a免费视频观看网站 一级做a爰片久久毛片唾 | 国产成人精品综合久久久软件 | 久久久久久久男人的天堂 | 日本人的色道www免费一区 | 麻豆国产原创 | 天天干夜夜爽 | 狠狠综合久久 | 免费99热在线观看 | 欧美日韩图区 | 久久国产精品只做精品 | 欧美xxx免费视频 | 日本一级特黄毛片高清视频 | 一区二区中文字幕 | 欧美专区在线观看 | 嘿咻嘿咻免费区在线观看吃奶 | 在线欧美日韩国产 | 免费精品精品国产欧美在线 | 伊人久热这里只有精品视频99 | 亚洲高清资源在线观看 | 欧美精选在线 | 成人免费观看一区二区 | 国产爱视频 | 日韩亚洲一区中文字幕 | 亚洲qingse | 青青热在线观看视频精品 | 精品69久久久久久99 |