我们正在构建一个支持AJAX的web应用程序,该应用程序向服务器发出多个异步请求。这些服务器请求中的每一个都是长时间运行的服务器任务,每个请求都向html页面返回一个JSON对象。这些调用中的每一个都需要对会话对象进行读/写访问。
但是,当多个异步任务正在处理中时,ASP.NET会锁定会话对象,从而阻塞第一个异步调用。因此,这些异步调用永远不会并行发生。
PS:异步调用是PageMethod调用。
当同时使用异步调用时,首先不推荐使用会话。任何其他关于设计此异步请求模型的建议都将受到高度赞赏。
发布于 2011-03-03 05:07:25
感谢所有对我的问题发表答案和评论的人。我正在总结我的发现和解决方案,以便有人会发现这是有用的。
建议不要在异步调用中使用Sessions的每个人都是正确的。那么,我是怎么绕过它的呢?
EnableSessionState指令可以保留为默认(读/写)
使用上面的解决方案,多个异步调用是可能的,每个调用都读入会话对象
有关对返回JSON对象的HTTP Handler进行Jquery调用的更多信息,请参阅link
发布于 2011-02-26 03:24:00
我实际上同意在使用异步调用时不推荐使用会话,事实上,在任何情况下会话的使用都应该是最少的。我的大多数应用程序根本不直接使用sessionstate,除非是内部成员所需要的。
https://stackoverflow.com/questions/5118236
复制相似问题