首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步设计中的会话

问异步设计中的会话
EN

Stack Overflow用户
提问于 2011-02-25 22:14:22
回答 2查看 6.5K关注 0票数 10

我们正在构建一个支持AJAX的web应用程序,该应用程序向服务器发出多个异步请求。这些服务器请求中的每一个都是长时间运行的服务器任务,每个请求都向html页面返回一个JSON对象。这些调用中的每一个都需要对会话对象进行读/写访问。

但是,当多个异步任务正在处理中时,ASP.NET会锁定会话对象,从而阻塞第一个异步调用。因此,这些异步调用永远不会并行发生。

PS:异步调用是PageMethod调用。

当同时使用异步调用时,首先不推荐使用会话。任何其他关于设计此异步请求模型的建议都将受到高度赞赏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 05:07:25

感谢所有对我的问题发表答案和评论的人。我正在总结我的发现和解决方案,以便有人会发现这是有用的。

建议不要在异步调用中使用Sessions的每个人都是正确的。那么,我是怎么绕过它的呢?

  1. 将PageMethod调用更改为实现IReadOnlySessionState的HttpHandler。(在我的例子中,Ajax调用只需要对Session对象进行“读”访问)页面客户端JQuery向服务器发出Ajax调用HTTPHandler
  2. The @

EnableSessionState指令可以保留为默认(读/写)

使用上面的解决方案,多个异步调用是可能的,每个调用都读入会话对象

有关对返回JSON对象的HTTP Handler进行Jquery调用的更多信息,请参阅link

票数 9
EN

Stack Overflow用户

发布于 2011-02-26 03:24:00

我实际上同意在使用异步调用时不推荐使用会话,事实上,在任何情况下会话的使用都应该是最少的。我的大多数应用程序根本不直接使用sessionstate,除非是内部成员所需要的。

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

https://stackoverflow.com/questions/5118236

复制
相关文章

相似问题

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