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.mzph.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(可…