Проще говоря: у вас есть приложение ASP.NET MVC 2, вызывающее внешний веб-сервис SOAP. У вас есть один пользователь (сеанс), вызывающий какое-то действие контроллера, которое само вызывает службу. Во время этого вызова другой пользователь (другой сеанс) вызывает то же действие, и вы говорите, что он должен дождаться завершения первого запроса. Это немного странно и маловероятно.
Поведение, которое вы описываете, может произойти, если вы используете сеансы и у вас есть два одновременных запроса (из одного сеанса HTTP). Поскольку сеанс не является потокобезопасным, ASP.NET (и это не является ограничением MVC, как это всегда было) будет помещать в очередь все запросы из того же сеанса, которые пишут в него. Вот сообщение в блоге , которое иллюстрирует это (в разделе Ограничения сеанса )