Это произойдет, если вы используете сеансы в своих действиях. Поскольку сессии не являются поточно-ориентированными, ASP.NET сериализует доступ к ним. Поэтому, если у вас есть 2 параллельных запроса на одно и то же действие из одного и того же сеанса (как в случае с запросами AJAX), и если это действие выполняет запись в сеанс ASP.NET, эти 2 запроса будут поставлены в очередь и будут выполняться последовательно.
Если вы отключите сеанс в своем файле web.config (<sessionState mode="Off" />
) или отключите его для данного контроллера, запросы больше не будут обрабатываться последовательно, а параллельно. Конечно, это означает, что этот контроллер не должен использовать сеанс вообще или использовать его только для чтения. См. Атрибут [SessionState]
:
[SessionState(SessionStateBehavior.ReadOnly)]
public class HomeController: Controller
{
// actions in this controller can be processed in parallel
// for requests from the same session
}