a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Session服務器配置指南與使用經驗

發布時間:  2012/5/24 20:38:47

一.摘要

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

二.關于Session,SessionID和Cookies

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

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

很多初級開發人員不知道SessionID和Cookies的關系, 所以常常認為兩者沒有聯系. 這是不正確的. 正是因為SessionID保存在Cookies中, 所以在我們保存Cookies的時候,一定要注意不要因為Cookies的大小和個數問題而導致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 進行備份.
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總數超過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億恩科技服務器的幾種方式

將Session保存在獨立的億恩科技服務器中可以實現在多臺Web億恩科技服務器之間共享Session.雖然我們也可以自己開發Session存儲系統, 但是使用ASP.NET自帶的存儲機制將更加便捷.

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

方式名稱

存儲方式 性能

Off

設置為不使用Session功能

InProc

設置為將Session存儲在進程內,就是ASP中的存儲方式,這是默認值。

性能最高

StateServer

設置為將Session存儲在獨立的狀態服務中。通常是aspnet_state.exe進程.

性能損失10-15%

SQLServer

設置將Session存儲在SQL Server中。

性能損失10-20%

Customer

自定制的存儲方案

由實現方式確定

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

下面主要講解 StateServer 和 SQLServer 的應用.

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

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

1.啟動 Asp.net State service服務.(這個服務默認的狀態為手動.修改為自動并啟動.)

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

設置 AllowRemoteConnection = 1 , 設置 Port = 42424 (十進制,默認即為42424)

Port是服務的端口號

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

(2)客戶端設置

在Web應用程序的Web.Config中, 我們需要修改 / 的節點.如果沒有

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

mode="StateServer"

stateConnectionString="tcpip=億恩科技服務器ip:42424"

cookieless="false"

timeout="60"/>

上面的參數我們可以根據需要修改.
 

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

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

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

a.使用SQL文件創建Session數據庫

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

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

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

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

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

InstallSqlState.sql 是創建默認名稱的數據庫"[ASPState]".此SQL可以直接運行.

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

執行installsqlstate.sql時不需要指定數據庫,可以在任意數據庫上執行.此SQL會自己創建新的數據庫

b. 使用aspnet_regsql.exe工具

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

使用舉例:

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

-S參數:

表示數據庫實例名稱. 可以用"."表示本機.

-U和-P參數:

表示用戶名和密碼.

-E參數:

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

-ssadd / –ssremove 參數:

-ssadd表示是添加Session數據庫, -ssremove表示移除Session數據庫.

sstype 參數:

選項

說明

t

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

p

將會話數據存儲到 ASPState 數據庫中,而不是存儲到 tempdb 數據庫中。

c

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

(2)Session客戶端設置

此房是同樣需要Web應用程序修改Web.Config中的節點.如果使用默認的數據庫(ASPState庫), 則配置如下:

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

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

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

六.使用經驗與技巧總結

下面是SessionID, Session_End時間, StatServer模式 和 SqlServer模式的各種經驗和技巧總結.

(1)StateServer模式:

1.在web farm中,請確認在所有的web億恩科技服務器上有相同的

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

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

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>

確認此模塊是否存在.
 

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

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

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

(2)SqlServer模式:

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

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

3. 在SQLServer模式下,session過期是由SQL Agent使用一個注冊任務完成的,要確認SQL Agent已經運行。否則無法清理過期的Session數據, 會導致數據庫數據一直增加.

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

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

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

(3)Session:

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

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

2. 在不同的應用程序或一個網站:(www.ibaoshan.net)的不同虛擬目錄之間無法共享Session

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

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

(4)SessionID:

1.SessionID 還可以保存在URL上, 設置Web.Config文件中的System.Web/sessionState節點的Cookiesless屬性即可:

<sessionState
cookieless="UseUri"
/>

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

3.關閉瀏覽器后再訪問, SessionID會不同.

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

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

6.對于包含FrameSet的頁面,比如:

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

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

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

(5)Session_End事件:

1. Session_End僅在InProc模式中可用

2. 關閉瀏覽器,Session_End是不會觸發的。HTTP是一種無狀態協議,億恩科技服務器沒有辦法知道你的瀏覽器是否已經關閉。

3. 當Session因為時間過期或調用Session.Abandon時,Session_End才會觸發.Session.Clear()僅僅是清除數據,但沒有刪除session。

4. Session_End由一個后臺線程觸發,使用工作者進程賬號運行. 所以程序不會通知發生的錯誤.

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

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

七.總結

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


本文出自:億恩科技【www.ibaoshan.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    国精产品一区二区三区四区糖心| 久久综合九色综合欧美| 在线精品国产一区二区三区| 日本又黄又爽又色又刺激的视频| 好爽毛片一区二区三区四| FREEXXX欧美老妇| 亚洲成在人线AⅤ中文字幕| 人妻无码一区二区三区精品视频 | AV无码AV在线A∨天堂毛片| 西西GOGO大胆啪啪艺术| 欧美成人伊人久久综合网| 国产亚洲欧美精品久久久| FREESEX欧美喷水| 亚洲VA成无码人在线观看| 人妻少妇精品久久| 精品人妻系列无码人妻在线不| 成人夜色视频网站在线观看| 亚洲无人区码一码二码三码的特点| 色翁荡息又大又硬又粗视频| 看全色黄大色黄女片爽在线看 | 色综合99久久久无码国产精品| 久久久久亚洲AV无码成人片麻豆 | 欧美电影在线观看| 国内精品宾馆在线精品酒店| 把女人弄爽特黄A大片片| 亚洲日韩欧洲无码A∨夜夜| 色欲狠狠躁天天躁无码中文字幕| 久久夜色精品国产噜噜亚洲SV| 国产精品久久久久久久久免费蜜桃 | 亚洲色欲综合天堂亚洲| 深入浅出TXL金银花讲的什么| 毛片内射久久久一区| 国产精品亚洲专区无码破解版| CHINAGARY武警体育飞机| 亚洲男人的天堂AV手机在线观看| 少妇兽交PWWW综合网| 美女脱个精光露出奶头和尿口| 国产丝袜视频一区二区三区| 波多野AV一区二区无码| 一线产区与二线产区的定义| 小烂货夹得好紧太爽了H苏妖精| 欧美性爱乱伦视频| 久久国产精品波多野结衣AV| 国产WW久久久久久久久久| 99无人区码一码二码三码四| 亚洲情文字幕在线一区| 甜性涩爱在线播放| 欧美成人在线最新| 久久99国产精品尤物| 国产成人精品视频ⅤA秋霞影院| 69ZXX少妇内射无码| 亚洲国产精品无码中文字视 | 丝瓜草莓秋葵污旧版APP无限看 | 中文乱码字幕视频观看网站免费| 香蕉久久AV一区二区三区APP| 秋霞成人无码电影在线观看| 久久AⅤ无码精品色午麻豆| 国产AV精国产传媒| 99久久99久久免费精品小说| 亚洲色大18成人网站WWW| 无码精品A∨在线观看十八禁| 全黄H全肉边做边吃奶| 久久久久亚洲AV无码专区首 | 成年女人午夜毛片免费视频| 中国GAY片男同志免费网站| 亚洲AV综合色区无码三区30p | 又粗又硬又大又爽免费视频播放| 无码日韩人妻AV一区二区三区| 人妻无码一区二区三区TV| 乱色熟女综合一区二区三区| 狠狠色噜噜狠狠狠777米奇| JEALOUSVUE成熟MON| 永久免费AⅤ无码网站在线观看| 亚洲AV无码熟妇在线观看| 台湾MD豆传媒一区二区| 欧美亚洲国产一区二区三区| 久久婷婷五月国产色综合| 国外免费B2B网站| 国产成人精品999在线观看| YELLOW片观看完整版| 永久免费AⅤ无码网站在线观看 | 午夜亚洲WWW湿好爽| 日韩成人无码专区一视频| 女人的抉择全集免费播放| 久久精品国产亚洲7777| 国色精品卡一卡2卡3卡4卡免费 | 国产裸体美女永久免费无遮挡| 从厨房到餐桌JOYCE| 99久久99久久免费精品小说| 一本久道久久综合狠狠躁AV| 亚洲AV优女天堂熟女| 天黑黑影院在线观看免费中文| 秋霞免费理论片在线观看| 免费A级毛片无码A∨性按摩| 久久久久波多野结衣高潮| 狠狠色噜噜狠狠狠888米奇| 国产精品国产三级国产普通话 | 小宝贝下面的小嘴流水了| 日日摸夜夜添夜夜添无码| 欧美一区二区三区孕妇精品| 乱码午夜-极品国产内射| 精品国产一区二区三区免费| 国产精品麻花传媒二三区别| 第九理论午夜电影院| YEEZY380蜜桃粉满天| 51无码人妻精品1国产| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲国产成人爱AV网站| 下面饿了想吃大香肠| 天干天干天啪啪夜爽爽AV| 日韩成人精品久久网站| 人成乱码一卡二卡三四卡五卡六卡| 妺妺窝人体色WWW看美女| 野花 高清 中文 免费 日本| 亚洲 欧美 变态 另类 综合| 四川骚妇无套内射舔了更爽| 人体色窝窝7777777| 内地CHINA高潮VIDEO| 老熟妇BBWASS| 久久精品国产一区二区三区肥胖| 黑料传送门TTTZZZ07DU| 国产欧美精品区一区二区三区 | TPU色母和PA6色母的区别| ACCA少女SDANVI| 尤物在线视频.YW163.成年| 亚洲精品无码久久| 亚洲AV无码国产在丝袜APP| 五月丁香合缴情在线看| 婷婷四房综合激情五月在线| 色妺妺AⅤ爽爽影院偷拍| 日产精品1区2区3区| 欧美最猛黑人XXXX黑人猛交| 欧美XXXX做受欧美| 妺妺窝人体色WWW国产馆在线| 麻豆国产丝袜白领秘书在线观看| 久久久久亚洲精品男人的天堂| 久久66热人妻偷产精品9| 精品人成视频免费国产| 精品97国产免费人成视频| 黑料不打烊吃瓜爆料| 国内盗摄视频一区二区三区| 国产制服丝袜在线无码| 国产午夜福利100集发布| 国产日韩精品一区二区三区在线观| 国产精品视频色尤物YW| 国产精品久久久久9999赢消| 国产AV无码区亚洲AV欧美| 国产AV人人夜夜澡人人爽小说| 国产成人18黄网站| 国产激情一区二区三区小说| 国产精品扒开腿做爽爽爽视频| 国产黄 色 网 站 成 人免费| 国产激情精品一区二区三区| 国产精品久久久久久久久久免费 | 我的妈妈和黑人群交小说| 天天摸天天添天天爱| 偷窥 亚洲 另类 图片 熟女| 无码纯肉视频在线观看| 无遮挡粉嫩小泬久久久久久久久| 无遮挡粉嫩小泬久久久久久欧| 午夜成人理论无码电影在线播放| 洗澡被公强玩好舒服肉欲小说| 亚洲 欧美 国产 日韩 精品 | 女人ASS人体下部PICS| 欧美高清精品一区二区| 朋友的人妻的滋味BD高清中文| 人人妻人人爽人人做夜欢视频九色| 日本高清中文字幕在线观穿线视频| 日产精品卡二卡三卡四妈妈的朋友| 日本三级欧美三级人妇视频黑白配| 日韩人妻无码系列专区| 涩爱AV挺进少妇张开双暴躁| 婷婷久久综合九色综合97| 无码国产成人久久| 亚洲 欧美 国产 制服 动漫| 亚洲成AV人在线视达达兔| 亚洲欧美一区二区三区| 亚洲中文字幕AV不卡无码| 在线V观看免费国岛国片| 97人妻成人免费视频| А√天堂资源地址在线官网| 别揉我奶头~嗯~啊~| 敌伦交换第21部分正文内容| 国产粉嫩馒头无套内在线观看免费| 国产精品丝袜黑色高跟鞋| 国内偷自第一区二区三区| 精品无人区一线二线三线区别 | 孩交乱子XXXX高清影视| 精品无人区卡卡卡卡卡二卡三乱码 | 国产精品VIDEOS麻豆| 国产欧美一区二区精品久久久| 好紧我太爽了视频免费国产| 精品无码专区免费下载| 久久夜色精品国产亚洲AV动态图| 妺妺窝人体色WWW聚色窝| 秋霞国产午夜伦午夜福利片| 色综合色欲色综合色综合色综合R 色综合色欲色综合色综合色综合 色综合色天天久久婷婷基地 | 少妇久久久久久被弄到高潮| 透过校服的乳尖 揉捏| 亚洲AV乱码一区二区三区|