ASP.NET MVC:會導致鎖定的會話

背景

一直沒有意識到會話的訪問會導致會話鎖定,現在想想這樣設計是非常合理的,不過某些情況下這樣會導致同一個會話的并發訪問非常低(只能串行化),好在MS提供了機制讓我們控制這種鎖。

測試

A頁面:緩存寫入頁面

1     public partial class Session_Lock_Test : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             this.Session["Data"] = DateTime.Now;
6 
7             this.Response.Write(this.Session["Data"]);
8         }
9     }

B頁面:緩存讀取頁面(長時間)

1     public partial class Session_Lock_Read_Long_Test : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             System.Threading.Thread.Sleep(5000);
6 
7             this.Response.Write(this.Session["Data"].ToString() + DateTime.Now.Millisecond);
8         }
9     }

C頁面:緩存讀取頁面(短時間)

1     public partial class Session_Lock_Read_Short_Test : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             this.Response.Write(this.Session["Data"].ToString() + DateTime.Now.Millisecond);
6         }
7     }

默認的情況下,如果我們先打開B,再打開C,會發現C始終在B之后顯示。

如果修改為并行訪問呢?

在WebForm中可以這樣修改:

1 <%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="ReadOnly" CodeBehind="Session_Lock_Read_Long_Test.aspx.cs" Inherits="WebFormStudy.Session_Lock_Read_Long_Test" %>

在Mvc中的可以這樣修改:

1 [SessionState(SessionStateBehavior.ReadOnly)]

備注

因為IIS Express被我弄壞了,沒法貼截圖了。

參考資料:http://msdn.microsoft.com/zh-cn/library/ms178587(v=vs.100).aspx。

?

轉載于:https://www.cnblogs.com/happyframework/p/3256403.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259477.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259477.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

.NET重構(四):窗體繼承+模板方法,完美實現組合查詢

導讀&#xff1a;在機房重構中&#xff0c;有好些個查詢都是大同小異&#xff0c;最為顯著的就是組合查詢了。怎樣給自己省事兒&#xff0c;相同的東西能不能重復利用&#xff0c;就成了一個現實的問題。第一遍做機房的時候&#xff0c;使用的更多的是&#xff1a;復制粘貼。學…

github常見操作和常見錯誤!錯誤提示:fatal: remote origin already exists.

原文鏈接&#xff1a;http://blog.csdn.net/dengjianqiang2011/article/details/9260435 如果輸入$ git remote add origin gitgithub.com:djqiang&#xff08;github帳號名&#xff09;/gitdemo&#xff08;項目名&#xff09;.git 提示出錯信息&#xff1a;fatal: remote or…

云計算的下半場

經常有人說互聯網上下半場的區別&#xff0c;大體上上半場燒錢&#xff0c;下半場分出勝負。自打美團王興拋出互聯網的下半場的說法&#xff0c;大家意識到這不僅僅是新美大的下半場&#xff0c;這更是整個互聯網行業的下半場。爆炸式的人口紅利帶來互聯網行業上半場的快速增長…

oracle中的l_satids,請問shared pool中的KQR L PO存放哪些數據

ROW CACHE 也叫做 dictionary cache &#xff0c;緩存數據字典基表如 OBJ$、COL$、IND$、SEQ$的信息以便解析SQL和library cache object。包括 KQR S PO &#xff0c; KQR M PO&#xff0c;KQR L PO &#xff0c; 等KQR > ROW CACHEkqr.h 1323 KSDTRADV("ROW_CACHE&quo…

This task is currently locked by a running workflow and cannot be edited

轉自&#xff1a;http://geek.hubkey.com/2007/09/locked-workflow.html 轉自&#xff1a;http://blogs.code-counsel.net/Wouter/Lists/Posts/Post.aspx?Listc04a88a9%2Dd138%2D4ac3%2Da2bb%2Db95c9fdd114e&ID118 SPWorkflow.AlertTask()的時候出現“This task is curren…

ETL模型設計

傳統的關系數據庫一般采用二維數表的形式來表示數據&#xff0c;一個維是行&#xff0c;另一個維是列&#xff0c;行和列的交叉處就是數據元素。關系數據的基礎是關系數據庫模型&#xff0c;通過標準的SQL語言來加以實現。 數據倉庫是多維數據庫&#xff0c;它擴展了關系數據庫…

《劍指offer》-整數中1出現的次數

題目描述 求出1~13的整數中1出現的次數,并算出100~1300的整數中1出現的次數&#xff1f;為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對于后面問題他就沒轍了。ACMer希望你們幫幫他,并把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的…

This is Me!——回顧第一個項目的前前后后

今天終于把論文敲完了&#xff0c;一路走來&#xff0c;頗多感想。遂寫下以下諸多文字&#xff0c;以饗讀者。 在說這個項目之前&#xff0c;先簡單介紹一下我的經歷。我叫王財勇&#xff0c;家是山西的&#xff0c;2009年至2013年在新疆大學就讀數學專業&#xff0c;也許有人…

從零開始學JavaScript三(變量)

一、變量 ECMAscript變量是松散型變量&#xff0c;所謂松散型變量&#xff0c;就是變量名稱可以保存任何類型的數據&#xff0c;每個變量僅僅是一個用于保存值的占位符。 定義變量時要使用var操作符 如&#xff1a; var message; /*定義一個名為message的變量&#xff0c;該變量…

DES加密過程例解

DES加密算法是最被廣泛使用的對稱加密算法&#xff0c;通過示例來演示DES、TribleDES&#xff08;3Key&#xff09; DES-ECB&#xff1a; 按8字節為單位進行加密&#xff0c;不足8字節補0key&#xff1a; 1111111111111111indata: 2222222222222222 OutData: 950973182317F8…

linux在雙系統中消失了,雙系統重新安裝windows后,ubuntu選項消失

1、首先用LiveCD進入ubuntu2、打開終端&#xff0c;&#xff0c;輸入&#xff1a;fdisk -l 查看自己linux的分區情況&#xff0c;我的分了4個區&#xff0c;swap&#xff0c;boot&#xff0c;/&#xff0c;home&#xff0c;對應的分別是&#xff1a;/dev/sda9 swap…

Cydia源局域網化

2019獨角獸企業重金招聘Python工程師標準>>> 步驟 在網址根目錄創建文件夾cydia&#xff0c;把你的deb文件放到 cydia/debs/ 文件夾下。在終端cd進入cydia文件夾輸入命令&#xff1a;dpkg-scanpackages debs /dev/null > Packages輸入命令&#xff1a;tar zcvf P…

前綴++ 后綴++ 運算符重載

下面例子程序中 const Fraction operator (int) 中 int不過是個啞元&#xff08;dummy&#xff09;,是永遠用不上的 它只是用來判斷&#xff0b;&#xff0b;是prefix 還是 postfix 記住&#xff0c;如果有啞元&#xff0c;則是postfix,否則&#xff0c…

固定資產調整對資產折舊的影響

固定資產折舊計提方法 一、原值增加&#xff1a; 1、已攤銷資產&#xff1a; 攤銷調整時間設在當期&#xff1a;(1078135) 在進行原值增加后&#xff0c;攤銷日期不變時&#xff0c;折舊在當月體現。 每月新增月折舊調增金額*(1-殘值率)/(折舊年限*12-已提折舊月份的個數) 例&a…

linux系統中 庫分為靜態庫和,Linux系統靜態庫與共享庫

8種機械鍵盤軸體對比本人程序員&#xff0c;要買一個寫代碼的鍵盤&#xff0c;請問紅軸和茶軸怎么選&#xff1f;This article mainly introduces the statics library and shared library on Linux and has done some experiments for better comprehension.Static library&am…

軟件工程概論作業01

軟件工程作業01 寫一個能自動生成三十道小學四則運算題目的 “軟件”&#xff0c;要求&#xff1a;除了整數以外&#xff0c;還要支持真分數的四則運算&#xff08;需要驗證結果的正確性&#xff09;、題目避免重復、可定制出題的數量。 思路&#xff1a;隨機生成兩個數進行計算…

成員指針運算符 .* 和 -*

轉載&#xff1a; http://www.groad.net/bbs/thread-5548-1-1.html 有一種特殊的指針叫做成員指針&#xff0c;它們通常指向一個類的成員&#xff0c;而不是對象中成員的特定實例。 成員指針并不是真正的指針&#xff0c;它只是成員在對象中的偏移量&#xff0c;它們分別是&am…

捕捉Entity framework 6的詳細異常提示

采用 try{}catch (Exception e){throw;}不能捕捉到詳細異常提示, e.message的內容為"Validation failed for one or more entities. See EntityValidationErrors property for more details." 如果需要獲取詳細的異常提示,采用 1 try2 {3 return…

8.16——熟悉安裝linux系統

一、linux的版本——CentOS CentOS&#xff08;Community ENTerprise Operating System&#xff09;是Linux發行版之一&#xff0c;它是來自于Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由于出自同樣的源代碼&#xff0c;因此有些要求高度穩定性的服…

linux中設置默認權限的命令,Linux默認權限掩碼

Linux教程Linux教程&#xff1a;http://www.fdlly.com/m/linux文章目錄默認權限掩碼設置權限掩碼以文字的方式設置權限掩碼查看系統當前的權限掩碼默認權限掩碼當我們創建文件或目錄時&#xff0c;系統會自動根據權限掩碼來生成預設權限&#xff1b;默認情況下的umask值是022(可…