gpt4 book ai didi

c# - 异步设计中的 session

转载 作者:可可西里 更新时间:2023-11-01 09:08:25 26 4
gpt4 key购买 nike

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

但是当有多个异步任务在进行时,ASP.NET 会锁定 session 对象,从而阻塞第一个异步调用。所以这些异步调用永远不会并行发生。

PS:异步调用是 PageMethod 调用。

当与异步调用一起使用时,首先“不”推荐使用 session 。对于设计此异步请求模型的任何其他建议,我们将不胜感激。

最佳答案

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

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

  1. 将 PageMethod 调用更改为实现 IReadOnlySessionState 的 HttpHandler。 (在我的例子中,Ajax 调用只需要对 Session 对象进行“读取”访问)
  2. 客户端 JQuery 对服务器 HTTPHandler 进行 Ajax 调用
  3. @Page EnableSessionState 指令可以保留为默认值(读/写)

使用上述解决方案,每次调用读入 session 对象时都可以进行多个异步调用

有关对返回 JSON 对象的 HTTP 处理程序进行 Jquery 调用的更多信息,这里是 link

关于c# - 异步设计中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com