精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Session服務(wù)器配置指南與使用經(jīng)驗

發(fā)布時間:  2012/5/24 20:38:47

一.摘要

所有Web程序都會使用Session保存數(shù)據(jù). 使用獨(dú)立的Session億恩科技服務(wù)器可以解決負(fù)載均衡場景中的Session共享問題.本文介紹.NET平臺下建立Session億恩科技服務(wù)器的幾種辦法, 并介紹在使用Session時的各種經(jīng)驗和技巧.

二.關(guān)于Session,SessionID和Cookies

Session數(shù)據(jù)保存在億恩科技服務(wù)器端, 但是每一個客戶端都需要保存一個SessionID, SessionID保存在Cookies中, 關(guān)閉瀏覽器時過期.

在向億恩科技服務(wù)器發(fā)送的HTTP請求中會包含SessionID, 億恩科技服務(wù)器端根據(jù)SessionID獲取獲取此用戶的Session信息.

很多初級開發(fā)人員不知道SessionID和Cookies的關(guān)系, 所以常常認(rèn)為兩者沒有聯(lián)系. 這是不正確的. 正是因為SessionID保存在Cookies中, 所以在我們保存Cookies的時候,一定要注意不要因為Cookies的大小和個數(shù)問題而導(dǎo)致SessionID對象. 在我們的程序中, 對SessionID的Cookies有特殊的處理:

/// <summary>
/// 寫入cookie.
/// </summary>
/// <param name="day"></param>
/// <returns></returns>
public bool SetCookie(int day)
{
string CookieName = GetType().ToString();
HttpCookie SessionCookie = null;

//對 SessionId 進(jìn)行備份.
if (HttpContext.Current.Request.Cookies["ASP.NET_SessionId"] != null)
{
string SesssionId = HttpContext.Current.Request.Cookies["ASP.NET_SessionId"].Value.ToString();
SessionCookie = new HttpCookie("ASP.NET_SessionId");
SessionCookie.Value = SesssionId;

}

//省略掉中間的代碼部分.只保留備份SessionID和找回SessionID的邏輯

//如果cookie總數(shù)超過20 個, 重寫ASP.NET_SessionId, 以防Session 丟失.
if (HttpContext.Current.Request.Cookies.Count > 20 && SessionCookie != null)
{
if (SessionCookie.Value != string.Empty)
{
HttpContext.Current.Response.Cookies.Remove("ASP.NET_SessionId");
HttpContext.Current.Response.Cookies.Add(SessionCookie);
}
}

return true;
}
三.搭建Session億恩科技服務(wù)器的幾種方式

將Session保存在獨(dú)立的億恩科技服務(wù)器中可以實(shí)現(xiàn)在多臺Web億恩科技服務(wù)器之間共享Session.雖然我們也可以自己開發(fā)Session存儲系統(tǒng), 但是使用ASP.NET自帶的存儲機(jī)制將更加便捷.

.NET提供了5種保存Seission的方式:

方式名稱

存儲方式 性能

Off

設(shè)置為不使用Session功能

InProc

設(shè)置為將Session存儲在進(jìn)程內(nèi),就是ASP中的存儲方式,這是默認(rèn)值。

性能最高

StateServer

設(shè)置為將Session存儲在獨(dú)立的狀態(tài)服務(wù)中。通常是aspnet_state.exe進(jìn)程.

性能損失10-15%

SQLServer

設(shè)置將Session存儲在SQL Server中。

性能損失10-20%

Customer

自定制的存儲方案

由實(shí)現(xiàn)方式確定

我們可以在Web.Config中配置程序使用的Session存儲方式.默認(rèn)情況下是InProc, 即保存在IIS進(jìn)程中. 關(guān)于Off, InProc和Customer本文不做講解. 相關(guān)文章大家都可以在網(wǎng)上搜索到.

下面主要講解 StateServer 和 SQLServer 的應(yīng)用.

四.使用 StateServer 模式搭建Session億恩科技服務(wù)器

(1)億恩科技服務(wù)器端配置

1.啟動 Asp.net State service服務(wù).(這個服務(wù)默認(rèn)的狀態(tài)為手動.修改為自動并啟動.)

2.修改注冊表: [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state\Parameters]

設(shè)置 AllowRemoteConnection = 1 , 設(shè)置 Port = 42424 (十進(jìn)制,默認(rèn)即為42424)

Port是服務(wù)的端口號

AllowRemoteConnection 表示是否允許其他機(jī)器連接,0為僅能本機(jī)使用,1為可以供其他機(jī)器使用.

(2)客戶端設(shè)置

在Web應(yīng)用程序的Web.Config中, 我們需要修改 / 的節(jié)點(diǎn).如果沒有

沒有則添加(默認(rèn)使用的是InProc方式)

mode="StateServer"

stateConnectionString="tcpip=億恩科技服務(wù)器ip:42424"

cookieless="false"

timeout="60"/>

上面的參數(shù)我們可以根據(jù)需要修改.
 

五.使用SqlServer模式搭建Session億恩科技服務(wù)器

(1)億恩科技服務(wù)器端配置

使用SqlServer模式搭建Session億恩科技服務(wù)器端有兩種方式. ASP.NET 1.0和1.1版本請使用方式a, 2.0即以上版本請使用方式b.

a.使用SQL文件創(chuàng)建Session數(shù)據(jù)庫

在ASP.NET 1.0和1.1 版本中, 只能使用這種方式.對于2.0及其以上版本,請使用aspnet_regsql.exe工具.(當(dāng)然此方法也通用2.0版本)

.net提供了數(shù)據(jù)庫安裝腳本,可以在機(jī)器的windows文件夾中找到:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ InstallSqlState.sql

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ InstallSqlStateTemplate.sql

根據(jù)ASP.NET的版本不同, 需要使用不同的SQL腳本. ASP.NET主要有1.1和2.0兩個版本,可以在不同的版本文件夾找到這兩個SQL.

InstallSqlState.sql 是創(chuàng)建默認(rèn)名稱的數(shù)據(jù)庫"[ASPState]".此SQL可以直接運(yùn)行.

InstallSqlStateTemplate.sql 可以使用自己指定的數(shù)據(jù)庫保存數(shù)據(jù).此SQL需要自己修改后運(yùn)行, 打開SQL文件將其中 [DatabaseNamePlaceHolder] 替換為自己指定的數(shù)據(jù)庫名稱.

執(zhí)行installsqlstate.sql時不需要指定數(shù)據(jù)庫,可以在任意數(shù)據(jù)庫上執(zhí)行.此SQL會自己創(chuàng)建新的數(shù)據(jù)庫

b. 使用aspnet_regsql.exe工具

ASP.NET 2.0版本后微軟提供了aspnet_regsql.exe工具可以方便的配置Session數(shù)據(jù)庫.該工具位于 Web 億恩科技服務(wù)器上的"系統(tǒng)根目錄\Microsoft.NET\Framework\版本號"文件夾中.

使用舉例:

aspnet_regsql.exe -S . -U sa -P 123456 -ssadd -sstype p

-S參數(shù):

表示數(shù)據(jù)庫實(shí)例名稱. 可以用"."表示本機(jī).

-U和-P參數(shù):

表示用戶名和密碼.

-E參數(shù):

可以再-U –P 與 -E中選擇一組. –E表示以當(dāng)前系統(tǒng)用戶通過windows身份驗證登錄數(shù)據(jù)庫, -U -P則是使用SqlServer用戶登錄數(shù)據(jù)庫.

-ssadd / –ssremove 參數(shù):

-ssadd表示是添加Session數(shù)據(jù)庫, -ssremove表示移除Session數(shù)據(jù)庫.

sstype 參數(shù):

選項

說明

t

將會話數(shù)據(jù)存儲到 SQL Server tempdb 數(shù)據(jù)庫中。這是默認(rèn)設(shè)置。如果將會話數(shù)據(jù)存儲到 tempdb 數(shù)據(jù)庫中,則在重新啟動 SQL Server 時將丟失會話數(shù)據(jù)。

p

將會話數(shù)據(jù)存儲到 ASPState 數(shù)據(jù)庫中,而不是存儲到 tempdb 數(shù)據(jù)庫中。

c

將會話數(shù)據(jù)存儲到自定義數(shù)據(jù)庫中。如果指定 c 選項,則還必須使用 -d 選項包括自定義數(shù)據(jù)庫的名稱。

(2)Session客戶端設(shè)置

此房是同樣需要Web應(yīng)用程序修改Web.Config中的節(jié)點(diǎn).如果使用默認(rèn)的數(shù)據(jù)庫(ASPState庫), 則配置如下:

<sessionState
mode="SQLServer"
sqlConnectionString="server=192.168.9.151; uid=sa; pwd=123456;"
/>

如果使用了自定義的數(shù)據(jù)庫名稱,則還需要制定allowCustomSqlDatabase屬性并在數(shù)據(jù)庫連接串中指定數(shù)據(jù)庫:

<sessionState
mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="server=192.168.9.151; DataBase=MyAspState;uid=sa; pwd=123456;"
/>

六.使用經(jīng)驗與技巧總結(jié)

下面是SessionID, Session_End時間, StatServer模式 和 SqlServer模式的各種經(jīng)驗和技巧總結(jié).

(1)StateServer模式:

1.在web farm中,請確認(rèn)在所有的web億恩科技服務(wù)器上有相同的

2. 要保存在Session中的對象是可序列化的。

3.為了在web farm中的不同web億恩科技服務(wù)器上維護(hù)session state,IIS Metabase中的網(wǎng)站:(www.zuiquanben.com)應(yīng)用程序路徑(如\LM\W3SVC\2)應(yīng)該在所有的億恩科技服務(wù)器上保持一致(大小寫敏感).

4. ASP.NET處理Session是在Machine.Config中配置的HttpModuel模塊, 在.NET的安裝目錄下的Config文件夾中, 查看Web.Config(1.1版本是在Machine.Config):

<httpModules>
...

 <add name="Session" type="System.Web.SessionState.SessionStateModule"/> ...
 </httpModules>

確認(rèn)此模塊是否存在.
 

5.StateServer不支持負(fù)載均衡, 所以如果大并發(fā)推薦使用SqlServer模式, 可以享受到SqlServer的高性能和安全性.雖然存儲效率會有下降.

6.需要讓所有機(jī)器的MachineKey相同.在Machine.Config中配置:

<machineKey
validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
decryptionKey="123456789012345678901234567890123456789012345678"
validation="SHA1"
decryption="Auto"
/>

(2)SqlServer模式:

1. 要保存在Session中的對象是可序列化的。

2. 如果使用了默認(rèn)是數(shù)據(jù)庫, 則在客戶端配置文件中的數(shù)據(jù)庫鏈接字符串的用戶,需要擁有ASPState和tempdb兩個庫的dbowner權(quán)限.

3. 在SQLServer模式下,session過期是由SQL Agent使用一個注冊任務(wù)完成的,要確認(rèn)SQL Agent已經(jīng)運(yùn)行。否則無法清理過期的Session數(shù)據(jù), 會導(dǎo)致數(shù)據(jù)庫數(shù)據(jù)一直增加.

4. 如果使用SqlServer模式時, 對于Web場中的各億恩科技服務(wù)器的 ASP.NET 應(yīng)用程序路徑必須是相同的。請在 IIS 配置數(shù)據(jù)庫中對 Web 場中的所有 Web 億恩科技服務(wù)器進(jìn)行 Web 站點(diǎn)的應(yīng)用程序路徑同步。大小寫一定要相同,因為 Web 站點(diǎn)的應(yīng)用程序路徑是區(qū)分大小寫的。

5.需要讓所有機(jī)器的MachineKey相同.在Machine.Config中配置:

<machineKey
validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
decryptionKey="123456789012345678901234567890123456789012345678"
validation="SHA1"
decryption="Auto"
/>

(3)Session:

1. 不能直接通過Session億恩科技服務(wù)器在ASP.NET和ASP之間共享Session. 請使用微軟提供的解決方案:

http://msdn.microsoft.com/zh-cn/library/aa479313.aspx

2. 在不同的應(yīng)用程序或一個網(wǎng)站:(www.zuiquanben.com)的不同虛擬目錄之間無法共享Session

3. Session的過期時間是滑動時間.

4. Session存儲.NET自帶的值類型性能最優(yōu). 存儲對象會降低性能.

(4)SessionID:

1.SessionID 還可以保存在URL上, 設(shè)置Web.Config文件中的System.Web/sessionState節(jié)點(diǎn)的Cookiesless屬性即可:

<sessionState
cookieless="UseUri"
/>

2. 一般在Session超時或刪除之后,SessionID保持不變. 因為Session過期后會在億恩科技服務(wù)器端清除數(shù)據(jù), 但是SessionID保存在用戶瀏覽器上, 所以只要瀏覽器不關(guān)閉則HTTP頭中的SessionID保持不變.

3.關(guān)閉瀏覽器后再訪問, SessionID會不同.

4.每打開一個IE6窗口, SessionID都不同, 在IE6中兩個窗口的Session不能共享.

5.FireFox的標(biāo)簽頁和新的FireFox窗口, SessionID都相同, 在FF的窗口和標(biāo)簽頁上Session能共享.

6.對于包含F(xiàn)rameSet的頁面,比如:

<frameset cols="25%,50%,25%">
<frame src="SessionID.aspx">
<frame src="SessionID.aspx">
<frame src="SessionID.aspx">
</frameset>

如果后綴名是.htm并且.htm文件沒有交給ASP.NET的ISAPI處理, 那么根據(jù)億恩科技服務(wù)器速度在每個Frame頁面生成不同的SessionID, 再刷新后相同都等于最后一個SessionID.

解決辦法是將.htm后綴改成.aspx, 或者將.htm文件交給ASP.NET的ISAPI處理.

(5)Session_End事件:

1. Session_End僅在InProc模式中可用

2. 關(guān)閉瀏覽器,Session_End是不會觸發(fā)的。HTTP是一種無狀態(tài)協(xié)議,億恩科技服務(wù)器沒有辦法知道你的瀏覽器是否已經(jīng)關(guān)閉。

3. 當(dāng)Session因為時間過期或調(diào)用Session.Abandon時,Session_End才會觸發(fā).Session.Clear()僅僅是清除數(shù)據(jù),但沒有刪除session。

4. Session_End由一個后臺線程觸發(fā),使用工作者進(jìn)程賬號運(yùn)行. 所以程序不會通知發(fā)生的錯誤.

5. 在Session_End訪問數(shù)據(jù)庫要考慮權(quán)限問題. Session_End是用運(yùn)行工作者進(jìn)程(aspnet_wp.exe)的帳號運(yùn)行的,這個賬號可以在machine.config中指定。因此,在Session_End中,如果使用integrity security連接SQL,它將使用工作者進(jìn)程賬號身份連接,這可能會引起登錄失敗.

6.因為Session_End是有獨(dú)立線程出發(fā)的, 所以在Session_End中無法使用HttpContext對象(Request,Response,Server等對象都在HttpContext中), 即無法使用 Response.Redirect 和Server.Transfer等方法.

七.總結(jié)

我已經(jīng)使用SqlServer模式對公司的多臺億恩科技服務(wù)器實(shí)現(xiàn)了Session共享, 億恩科技服務(wù)器重啟也不會導(dǎo)致用戶預(yù)定過程重新開始(預(yù)定過程需要的Session不會丟失). 希望本文對具體的Session億恩科技服務(wù)器搭建人員有所幫助.


本文出自:億恩科技【www.zuiquanben.com】

服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1-20183354
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:0371-60135995
  • 警情提示:注意防范電信網(wǎng)絡(luò)詐騙
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2026 ENKJ All Rights Reserved 地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師  B1-20183354   京公網(wǎng)安備41019702002023號 
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線

     
     
    精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费
    欧美香蕉视频| 午夜在线精品偷拍| 日韩一区二区三区四区五区| 亚洲精品国产偷自在线观看| 久久精品免费一区二区三区| 91看片一区| 丝袜美腿诱惑一区二区三区| 亚洲啊v在线| 成人羞羞在线观看网站| 国产成人精品三级高清久久91 | а√天堂8资源中文在线| 免费在线欧美黄色| 精品国产亚洲日本| 日韩av有码| 最新中文字幕在线播放 | 91p九色成人| 国产无遮挡裸体免费久久| 国产精品白浆| 国产激情在线播放| 欧美日韩中文字幕一区二区三区 | 免费观看亚洲| 亚洲二区精品| 国产视频一区三区| 日本欧洲一区二区| 97精品国产99久久久久久免费| 日本少妇精品亚洲第一区| 国产精品探花在线观看| 国产一区二区久久久久| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产欧美日韩精品高清二区综合区 | 日本视频在线一区| 国产精品一区二区美女视频免费看| 久久99偷拍| 国产麻豆久久| 视频一区中文字幕| 欧美日韩国产一区二区在线观看| 免费在线欧美黄色| 亚洲91视频| 日本欧美在线看| 欧美三区不卡| 国产欧美一区二区三区精品酒店| 欧美~级网站不卡| 亚洲啊v在线免费视频| 精品国产一级| 黄色av一区| 国产亚洲欧美日韩精品一区二区三区 | 日韩成人精品一区二区| 精品在线99| 日韩国产在线观看| 免费亚洲一区| 狠狠久久婷婷| 国产精品mm| 在线成人直播| 欧美成a人片免费观看久久五月天| 999国产精品视频| 亚洲精品第一| 欧洲av不卡| 日韩高清在线不卡| 91精品国产福利在线观看麻豆| 少妇精品久久久一区二区| 国产一区不卡| 天堂成人免费av电影一区| 麻豆一区二区三区| 尤物精品在线| 国产精品九九| av不卡免费看| 精品久久在线| 最新亚洲国产| 香蕉视频亚洲一级| 日韩av字幕| 欧美特黄视频| 四虎成人av| 97久久精品| 婷婷综合在线| 狠狠久久伊人| 亚洲小说春色综合另类电影| 国产精品99久久精品| 亚洲我射av| 亚洲爱爱视频| 久久福利在线| 视频精品一区| 欧美日韩激情| 一区二区精品伦理...| 日韩欧美中文在线观看| 91精品国产自产在线观看永久∴| 国产精品色婷婷在线观看| 99国产精品久久久久久久| 精品一区二区三区在线观看视频| 在线精品亚洲| 性欧美xxxx免费岛国不卡电影| 麻豆精品视频在线观看| 亚洲免费毛片| 在线精品小视频| 成人国产精品一区二区免费麻豆| 亚洲精品日韩久久| 在线精品视频在线观看高清| 日韩av自拍| 国产精品调教| 日韩精品久久久久久久软件91| 欧美特黄一级| 99成人超碰| 亚洲欧洲美洲av| 精品视频一二| 牛牛精品成人免费视频| 91成人在线| 亚洲97av| 在线看片日韩| 欧美专区一区二区三区| 久久精品国产www456c0m| 国产精品久久久久av蜜臀 | 国产在线成人| 成人小电影网站| 高清av一区| 精品视频高潮| 精品资源在线| 欧美精品不卡| 国产精品美女在线观看直播| 日本一不卡视频| 五月激激激综合网色播| 男女男精品网站| 三级欧美在线一区| 美女精品在线观看| 在线 亚洲欧美在线综合一区| 色婷婷精品视频| 亚洲1234区| 中文在线а√在线8| 伊人久久国产| 久久久久一区| 香蕉精品视频在线观看| 夜久久久久久| 视频一区二区三区入口| 亚洲三级精品| 日本国产亚洲| 国产无遮挡裸体免费久久| 日韩av中文字幕一区| 日本三级亚洲精品| 国产欧美久久一区二区三区| 69堂精品视频在线播放| 国产视频网站一区二区三区| 国产乱子精品一区二区在线观看 | 在线日韩中文| 激情综合网五月| 中文在线不卡| 久久精品国产久精国产| 少妇精品久久久一区二区三区| 综合亚洲视频| 欧美日本久久| 九九99久久精品在免费线bt| 福利在线免费视频| 激情欧美丁香| 美女久久网站| 欧美日韩一区二区三区不卡视频| 国产免费播放一区二区| 精品久久97| 成人免费网站www网站高清| 午夜国产精品视频| 婷婷精品在线| 国产精品亚洲综合色区韩国| 色综合五月天| 一区福利视频| 日产欧产美韩系列久久99| 国产精品v日韩精品v欧美精品网站 | 亚洲精品国产精品粉嫩| 国产午夜一区| 成人国产精选| 九一精品国产| 日韩精品午夜视频| 成人污污视频| 欧美日韩激情| 亚洲人成高清| 国产一区二区三区国产精品| 免费av一区二区三区四区| 亚洲人亚洲人色久| 美女视频黄久久| 亚洲精品a级片| 7m精品国产导航在线| 国产精品高颜值在线观看| 99国产精品自拍| 国产日韩欧美一区| 欧美黄色网页| 亚洲精品无播放器在线播放| 精品少妇一区| 国产视频一区免费看| 国产调教精品| 桃色av一区二区| 日韩影院在线观看| 丰满少妇一区| 欧美一级专区| 精品理论电影在线| 日韩中文字幕一区二区三区| 精品中文在线| 蜜臀精品一区二区三区在线观看| 鲁大师精品99久久久| 亚洲少妇在线| 色乱码一区二区三区网站| 久久亚洲二区| 国产自产自拍视频在线观看| 亚洲资源网站| 成人羞羞视频播放网站| 日本一区免费网站|