gpt4 book ai didi

c# - 为什么同步处理单个用户对同一个 ApiController 的多次调用?

转载 作者:行者123 更新时间:2023-12-04 11:43:54 26 4
gpt4 key购买 nike

我做了一个简单的 GET,循环 10 次,每次迭代等待 1 秒来模拟工作。当我从 Chrome 中的一个选项卡调用此路由时,需要 10 秒(如预期)。当我同时调用此路由(从 2 个不同的选项卡)时,第一个选项卡需要 10 秒才能完成,但第二个选项卡需要 20 秒。

如果我将我的第二个选项卡设置为隐身选项卡,则两个请求在同时运行时会在 10 秒内返回。我还注意到,如果我有 2 个不同的 Controller (和 2 个不同的路由),来自 2 个非隐身选项卡的同时请求会同时返回。

谁能解释为什么同步处理对同一个 Controller 的多个请求?

编辑:该站点目前在 IIS 中自行托管

最佳答案

ASP.NET 使用 session 状态锁定来确保在给定时间同一 session 中只处理一个请求。这有助于防止围绕 session 状态的竞争条件。

使用 SessionStateAttribute 可以获得更好的并发性告诉 ASP.NET 您不打算写入 session 状态。

参见 this articlethis article获取更多信息。

更新

由于您使用的是 ApiController,因此上述行为可能不适用。但是,浏览器将进一步限制并发,如 this post 的答案中所述。 .

关于c# - 为什么同步处理单个用户对同一个 ApiController 的多次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20356168/

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