代码之家  ›  专栏  ›  技术社区  ›  Noah Heldman

iis7上的fastcgi…来自同一用户会话的多个并发请求?

  •  1
  • Noah Heldman  · 技术社区  · 14 年前

    Caveat: 我意识到这可能是一个服务器配置问题,但我认为可能有一个程序化的答案,这就是为什么我要在这里发布…

    在Apache上运行PHP,我们的用户能够发出多个并发请求(例如,来自同一浏览器中的不同选项卡)。

    由于在IIS下移动到FastCGI,这不再是默认行为。现在,当用户启动对服务器的请求,而浏览器正在等待响应时,如果他们打开一个新选项卡并启动另一个请求,则在上一个请求由IIS完成之前,IIS不会处理新请求。

    如果用户打开另一个浏览器并登录(为该用户启动一个新会话),则可以同时请求。

    我的问题是:有没有一种配置fastcgi/iis7的方法,允许来自同一用户会话的多个并发请求?如果没有,是否有其他办法允许这样做?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Dereleased    14 年前

    问题很可能是会话机制。默认情况下,由于PHP会话使用的是文件系统,因此必须等待会话文件关闭,然后才能再次打开它们。因此,对同一会话的后续请求将等待先前的请求,或者给出除您的请求之外的其他示例(如果您有框架集页)( 战栗 )对于三个帧,每个帧引用会话,它们都将一次加载一个帧,因为每个页面都必须等待会话机制。

    可能的解决方案:

    • 会议结束后,立即致电 session_write_close()
    • 实现使用数据库而不是文件系统的自定义DB处理程序。
        2
  •  0
  •   Community CDub    8 年前

    看起来我运气不好,至少在Windows上的fastcgi下运行php: PHP FastCGI Concurrent Requests