在使用ASP.NET会话时是否可以强制请求并发?
发布时间:2020-12-15 11:46:37 所属栏目:asp.Net 来源:互联网
导读:ASP.NET不允许同一会话的并发请求;这意味着用户一次只能发出1个请求. 例如,说我们有Test1.aspx: public partial class Test1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Session[test] = 1;
ASP.NET不允许同一会话的并发请求;这意味着用户一次只能发出1个请求. 例如,说我们有Test1.aspx: public partial class Test1 : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { Session["test"] = 1; System.Threading.Thread.Sleep(int.Parse(Request.QueryString["timeout"])); } } …和Test2.aspx: public partial class Test2 : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { Session["test"] = 1; Label1.Text = DateTime.Now.ToString("dd/MM/yy HH:mm:ss"); } } 当我们访问Test1.aspx?timeout = 10000,然后在访问Page2.aspx后立即,第二个请求将不得不等待10秒,直到第一个请求完成. 我今天刚刚学到了,我一直在使用ASP.NET 5年!直到我在MSDN页面(ASP.NET Session State Overview)的底部阅读它才真正相信. 那么,是否有办法强制并发?也就是说,除了使页面更快,或将长时间运行的代码移动到后台线程之外.我知道你可以使会话只读,但我不完全确定这是一个实际的选择. 解决方法虽然我刚刚从这个问题中了解到,我将确保在 Implementing a Session-State Store Provider中查看锁定会话存储数据部分,以获得有关其完成的更多信息.基于上述,尝试解决这个机制似乎不是一个好主意. 像你所说的,请保持请求很短,并将长时间运行的代码从请求线程中移出.另外: >如果不需要会话,请禁用该会话.最重要的是,如果你发送任何大的请求,这样做. 所有这些都是您应该已经在做的事了. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 为什么@ Html.Label()删除一些字符
- asp.net – 如何使用Inno Setup脚本创建IIS应用程序和应用程
- asp.net-mvc – MVC应用程序调试错误:viewstate MAC的验证
- 修改服务器配置 让asp.net文件后缀名随心所欲
- ASP.NET MVC 4 JSON绑定到视图模型 – 嵌套对象错误
- asp.net-mvc – 在MVC Controller中访问GET参数
- asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
- ASP.Net核心 – 获取帖子表格的所有数据
- asp.net – 如何检查SQL Server代理是否正在运行
- asp.net-mvc-3 – ASP.Net MVC 3:在哪里处理会话丢失?
推荐文章
站长推荐
- asp.net-mvc – 在asp.net mvc 3剃刀中识别html助
- asp.net-mvc – 用于选择的KendoUI网格Ajax绑定参
- asp-classic – 经典的asp / asp.net网站 – glo
- 详解Asp.net Core 使用Redis存储Session
- asp.net-mvc-3 – 如何在ASP.NET MVC中创建递归结
- asp.net – 我可以在超链接上显式指定NavigateUr
- iis-7 – ASP 3.0应用程序对象
- asp.net-mvc – MVC 5 OWIN登录声明和Antiforger
- asp.net-mvc – 值不能为空或为空.参数名称:con
- ASP.NET异步方法问题
热点阅读