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
ASP.NET MVC:会导致锁定的会话相关推荐
- ASP.NET MVC 1.0 RC 版发布了【转】
[原文地址]ASP.NET MVC 1.0 Release Candidate Now Available [原文发表日期] Tuesday, January 27, 2009 12:13 PM 今天 ...
- 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...
程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构 .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...
- ASP.NET MVC 使用防伪造令牌来避免CSRF攻击
本文转自这篇文章 XSRF即在访问B站点的时候,执行了A站点的功能. 比如: A站点登录后,可以修改用户的邮箱(接口:/Email/Modify?email=123),修改邮箱时只验证用户有没有登 ...
- ASP.NET MVC的最佳日志记录库
目录 介绍 4个日志记录库 log4net Log4net记录文本文件中 Log4net记录到数据库中 NLOG Nlog日志记录在文本文件中 NLog日志记录到数据库中 Serilog Serilo ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序处理并发
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第十篇:为ASP.NET MVC应用程序 ...
- ASP.NET MVC - 路由
ASP.NET MVC 路由(Routing) System.Web.Routing命名空间下的有关路由的类型 此命名空间下定义了与路由机制有关的类型,首先从宏观上了解一下这些类型. RouteTab ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- 成员资格、授权 – ASP.NET MVC 4 系列
ASP.NET MVC 不像 ASP.NET WEB FORMS 那样提供了很多自动保护机制来保护页面不受恶意用户的攻击,更明确的说,后者是致力于使应用程序免受攻击: 服务器组件对显示的值和特性进行 ...
- 详解Asp.net MVC DropDownLists
来自网络: Asp.net MVC中的DropDownLists貌似会让一开始从Asp.net Forms转过来的程序员造成不少迷惑.这篇文章讲述了为了使用DropDownLists,你需要在Asp. ...
最新文章
- C++程序员学Python:C与Python进行交互
- Unity钢铁以及玻璃材质的选择
- Android开发之购物车加减按钮(附加源码)
- 经典Wide Deep模型介绍及tensorflow 2代码实现
- 印度版的“大众点评”如何将 Food Feed 业务从 Redis 迁移到 Cassandra
- 可以储存照片的字段类型是_sql server 中 哪个字段类型可以储存图象?
- 从一个hibernate配置文件中了解到的东西
- PaddlePaddle顶会论文复现 | ECO视频动作识别网络
- 孤读Paper——《ATSS:Adaptive Training Sample Selection》
- Postman调接口时获取Chrome浏览器Cookie数据携带发送
- 格式html载入矢量图片,Web前端矢量小图标的使用方法
- 【java拾遗】内部类实例化is not an enclosing class
- CAP、BASE理论
- copyonwritearraylist 深究
- C++学习(一五九)Qt的场景图Scene Graph
- Elasticsearch之 cerebro 安装配置详细使用
- 9x07-usb state拔出usb线后状态仍为CONFIGURED,影响休眠(已解决)
- 8月22日到26日工作收获
- Java 在Windows上通过代码开启和关闭exe程序
- 用Python写简历
热门文章
- 深度学习之卷积神经网络(12)深度残差网络
- linux挂载fat分区,[实例]用fstab在Linux下自动挂载Win的FAT和NTFS分区
- zbrush 添加纹理贴图_zbrush零基础新手必看入门讲解
- jsp tag 自定义标签实现按钮的显示
- 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 完整卸载方案
- 工业机器人入门实用教程_机器学习实用入门
- 深度学习数据集制作工作_创建我的第一个深度学习+数据科学工作站
- R语言quantmod包
- 蜕变与成长中的青春创作:评论家谈少数民族青年作家的创作
- 萨义德与巴伦博依姆关于音乐和文学的对话