gpt4 book ai didi

ASP.net 站点 : Long-loading page for user puts all other page loads for user on Hold

转载 作者:行者123 更新时间:2023-12-02 00:37:21 24 4
gpt4 key购买 nike

我有以下场景(Asp.net 3.5、Windows Server 2008 R2、IIS7):

  • 用户 1 使用 Firefox 登录 abc.com,然后转到需要几分钟才能加载的页面。
  • 加载该页面时,User1 无法加载网站上的任何其他页面。
  • 在第一个页面完成加载或超时(然后其他请求快速连续完成)之前,用户 1 使用此浏览器在网站上的所有其他页面请求都不会收到响应。
  • 虽然第一页仍在加载(并且其他请求被搁置),但如果我打开一个不同的浏览器(Chrome,虽然可以很容易地成为 IE)并使用相同的用户登录该网站,我没有加载页面时出现问题。

因此,单个用户 session 似乎一次只能处理一个请求(因为同一用户使用不同的浏览器登录实际上是与 ASP.net 不同的 session )。

我希望发生的情况是,在加载 User1 的长时间加载请求时,User1 能够加载站点上的其他页面(在同一浏览器中)。

监控服务器,没有内存问题(Sql Server 也没有)。当我是唯一使用该网站的人时,我正在这样做。网站是ASP.net 3.5,使用Forms认证。只有非标准设置细节是 ViewState 存储在 Session 中。

到目前为止,在我的搜索中,我还没有找到与此相关的任何内容。如果这是预期的行为,我该如何覆盖它?如果这不是预期的行为,可能是什么原因造成的,我该如何解决?

最佳答案

此行为是设计使然;不允许并发访问 session 状态。具有相同 SessionID 的请求将被专门锁定以防止其状态可能损坏。

要解决这个问题,您可以在页面指令中禁用 session 状态。

<%@Page EnableSessionState="false"/>

在此处阅读“并发请求和 session 状态”http://msdn.microsoft.com/en-us/library/ms178581.aspx了解更多。

设置 EnableSessionState="ReadOnly" 将阻止该页面获得对 SessionState 的独占锁定(但页面本身必须等待用户的其他非 ReadOnly 请求完成才能加载).

关于ASP.net 站点 : Long-loading page for user puts all other page loads for user on Hold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063012/

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