首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PageMethods和会话

PageMethods和会话
EN

Stack Overflow用户
提问于 2011-02-25 04:24:49
回答 2查看 2.4K关注 0票数 3

我已经到处寻找这个解决方案了。任何见解都将受到高度赞赏。

情况:当单个页面中有多个PageMethod调用时,每个方法调用都持有对会话对象的锁定,从而阻塞。仅当@Page指令转换为False|ReadOnly时,才能异步执行PageMethod调用

发现:当Page指令是默认的(读/写),但页面上的任何地方都没有使用会话时,调用不会被阻塞。在页面级对会话的任何读或写操作都会阻塞pagemethod调用。

问题是:在@Page指令中创建EnableSessionState=ReadOnly是非常严格的,并且不想走这条路。

pagemethod调用可以不被阻塞吗?还能访问会话吗?(可能不是写入,而只是读取)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-07 22:19:24

票数 0
EN

Stack Overflow用户

发布于 2011-03-06 21:42:10

如果不实现自己的会话提供程序,我不相信你能做到这一点。那是some info on this MSDN page

ASP.NET应用程序本质上是多线程的。因为并行到达的请求是在从线程池中提取的并发线程上处理的,所以两个或更多针对同一会话的请求可能会同时执行。(经典的示例是页面包含两个框架,每个框架针对同一应用程序中的不同ASPX,导致浏览器提交对这两个页面的重叠请求。)为了避免数据冲突和不稳定的行为,提供程序在开始处理第一个请求时“锁定”会话,导致其他以同一会话为目标的请求等待锁释放。

因为允许并发请求执行重叠读取没有坏处,所以锁通常实现为读取器/写入器锁-即允许任意数量的线程读取会话,但防止重叠读取和写入以及重叠写入的锁。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5110001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档