国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET Session的七點認識小結

ASP.NET Session的七點認識小結

2019-09-17 13:28asp.net教程網 ASP.NET教程

ASP.NET Session的使用當中我們會遇到很多的問題,那么這里我們來談下經常出現的一些常用ASP.NET Session的理解

ASP.NET Session的七點認識之一 

對于值類型的變量,Session中保存的是值類型的拷貝 

Session["__test0"] = 1; int i = (int)Session["__test0"]+1; int j = (int)Session["__test0"]; 結果i=2,j=1 

ASP.NET Session的七點認識之二 

對于引用類新的變量,Session中保存的是引用 

CDACommon cda = new CDACommon(); Session["__test"] = cda.GetDataSet("select top 1 * from tb_customer"); DataSet ds = (DataSet)Session["__test"]; DataSet ds2 = (DataSet)Session["__test"]; ds.Tables[0].Rows[0][0]="9999"; 結果ds.Tables[0].Rows[0][0]=="9999" ds2.Tables[0].Rows[0][0]=="9999"; 

ASP.NET Session的七點認識之三 

Session周期 

新的瀏覽器窗口啟動后,開始一個新的Session,觸發Global的Session_Start的調用,從第一個瀏覽器窗口打開的瀏覽器窗口不 啟動新的Session。Session過期后,執行頁面的提交也會觸發Session_Start,等于是新的一個Session。 

ASP.NET Session的七點認識之四 

調用Session 

對于Web Service,每個方法的調用都會啟動一個Session,可以用下面的方法來使多個調用在同一個Session里 

CWSSyscfg cwsCfg = new CWSSyscfg(); cwsCfg.CookieContainer = new System.Net.CookieContainer(); CWSSyscfg是一個Web Service類,Web Service的給代理類設置CookieContainer屬性,只要多個代理的CookieContainer屬性是相同的值,則對這些Web Service的調用在同一個Session。可以用單例模式來實現。 

ASP.NET Session的七點認識之五 
Session數據有效期 
只要頁面有提交活動,則Session的所有項都會保持,頁面在20分鐘(默認配置)內沒有任何提交活動時Session會失效。Session內存儲的多個數據項是整體失效的。 

ASP.NET Session的七點認識之六 
Session的保存 

在session中如果保存的是非序列化的類比如DataView,在用SQLServer保存Session的模式下,無法使用。查看一個類是否是序列化的方法是,需看是否用[Serializable]來標記了該類。 

ASP.NET Session的七點認識之七 

關于Sesson的清除。 

如果我在Session中保存一個比較大的DataSet,這樣aspnet_wp.exe占有的內存會很大,假如我退出了使用這個DataSet 的頁面,我想釋放該Session,我用Session.Clear() 或者DataSet.Clear()都 不能使內存的占用降下來,即使Session過了期限,內存也沒有降下來,比較困惑,誰能給我詳細解釋一下。 

要說到session這個東西,很多人可能都不屑一顧。這個東東嘛,n年前就開始做了,有啥好講的啊。可是,在很多地方我們還是會發現一些問題,比 如有的人說,我的session_start激發了,怎么session_end沒有啊,我在session_end做了些善后工作,這下沒法完成了,怎 么辦啊? 

最近看了些文章,結合自己的一些經驗,想和大家一起討論一下其中的說法。 

其實,很多這類的問題都是由一個東西引起的,它就是session ID。首先,是不是我一個IE client起來,訪問一個頁面,只要我不關瀏覽器,session ID就是一樣的呢?很多人會想,應該是一樣的吧,我瀏覽器都沒關,web server總歸會認為我是同一個client,不會把session ID變來變去的。要驗證這個,讓我們現在做一個簡單的試驗。用vs.net創建一個簡單的asp.net web app.在web form1上加個button,然后在頁面的page prefix上enable trace.接下來瀏覽這個頁面,不停的click button來提交request。感謝asp.net的這個trace功能,我們可以看到session ID其實是在不停的變化的。也就是說,這時候在服務器端,根本就不關心這個client的存在,每次都覺得它是來自一個新的client. 

那這到底是怎么回事呢?OK,讓我們在page_load里面加上一句,session["variable1"]="testvalue";然后 再做一下測試。Bingo,現在session ID就保持一致了。我想,很多人也許以前就沒有注意到這點。這里我們可以得出一個結論:要建立一個持續的session,咱們需要至少使用一下 session變量,用行話來說,就是要至少往session dictionary中寫入一次。 

不過,值得注意的是,這只是個必要條件,還不是充分條件。 

在提到下一個必要條件前,我們先來弄清一件事,如果我們在程序中間有global.asax,里面有session_onstart, session_onend,上面的實驗是不會成功的。原因是一旦定義了session_onstart處理函數后,session的state就總是會 被保存了,即使里面是空的,這樣的話,session ID就不會改變了。因為session這東西還是消耗資源的,所以在asp.net web app中如果沒有必要,你就不要把session_onstart, session_end寫在global.asax中。 

上面的實驗中,我們也可以看到,如果session ID在變化,我們就跟蹤不到session_onend,一旦穩定下來,session_onend就出現了。 

現在,我們再來談談另一個條件,還是先從實驗做起,我們在剛才例子的基礎上(包括session_onstart, session_onend),在page_load的session那行的下面加上一句,session.abandon().再來運行一把,咦,這是 你會發現一點奇怪的地方,session_onend不執行了,盡管session_onstart執行過了一遍。(這里我們需要寫一些log語句來觀察 到)而且,如果我們把session.abandon()寫在button.onclick事件里面,session_onend就立馬執行了。奇怪吧, 這里有什么區別呢? 

這樣,第二個必要條件就引發了,要讓session_onend成功執行,至少要有一個request已經被完整地執行過。上面的第一種情況,在page_load中就中止的話,第一個request都沒有執行完畢,session_onend就沒法激發了。 

綜合這兩個必要條件,我們終于可以得出要讓session_onend執行的充分條件了: 

◆至少有一個request成功完整地執行 

◆至少存儲一些data在session state中。可以通過session變量或者加上session_onstart來實現。 

最后聲明一點,session_onend只在InProc模式中支持,也就是說,只在session data在asp.net worker process中時支持。 

ASP.NET Session的七點認識就談到這里,對于ASP.NET Session的理解是不是有所幫助呢?

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久99国产精品久久99大师 | 国产精品爱久久久久久久 | 国产午夜精品久久久久久久 | 99re国产精品视频 | 欧美一级久久 | 天天躁人人躁人人躁狂躁 | 精品成人国产在线观看男人呻吟 | 欧美一区二区网站 | 高清视频一区 | 中文字幕亚洲欧美日韩在线不卡 | 成人精品国产 | 一级片在线免费观看视频 | 99r精品在线 | 久久国产精品二区 | 中文字幕66页| 久久久综合视频 | 免费视频久久久 | 亚洲欧美在线观看 | 日本伊人久久 | 日韩国产欧美视频 | 日韩一级大片 | 一级做a| 亚洲精品视频一区二区三区 | 国产免费自拍 | a毛片国产 | 欧美日韩国产一区二区三区 | 成人午夜网站 | 欧美精品一区二区三区中文字幕 | 操操网站| 午夜伦4480yy私人影院 | 国产精品乱码一区二区三区 | 婷婷精品久久久久久久久久不卡 | 在线看一区 | 二区影院 | 国产成人精品免费视频大全最热 | 国产一区二区三区四 | 国产精品久久久久无码av | 毛片国产 | 欧洲一区二区在线观看 | 中文字幕视频在线 | 国产91久久久久蜜臀青青天草二 |