2016-12-13 3 views
0

У меня есть приложение ASP.NET 4.5 Web API поверх IIS 8.5.ASP.NET через IIS обрабатывает только один запрос асинхронного запроса

Сервер AWS EC2.

У меня есть ActionFilter, который регистрирует URL-адрес входящего запроса. Таким образом, он записывается в первый раз, когда запрос «входит» в мое приложение.

Я выдаю 2 запроса одновременно (используя Почтальон), и я вижу, что мой ActionFilter не вызвал мой первый запрос.

Этот запрос включает async-await образец по запросу БД.

Я сделал это дважды:

  • 2 запроса на тот же URL с различными параметрами (это веб-апи приложение)
  • 2 запросы к различным URL (следовательно, различные ApiController)

Я использую настройки IIS «из коробки».

  1. Как я могу подойти к этой проблеме?
  2. Какие параметры конфигурации IIS необходимо проверить?
  3. Исправьте меня, если я ошибаюсь, но асинхронный ожидание не имеет значения, потому что потоки ThreadPool должны иметь возможность обрабатывать несколько синхронных вызовов, не так ли?

Спасибо!

+0

Вам нужно отладить себя и выяснить, где заблокированы запросы. Хорошей отправной точкой было бы заменить весь доступ к БД на «waitait Task.Delay (10000);» и посмотреть, есть ли у вас одна и та же проблема ... Приведение в соответствие с [MCVE] имеет решающее значение для того, чтобы вопрос SO был подотчетен - так что потратите немного время подходит с одним. –

+0

Вы уверены, что запросы одновременно отправляются одновременно? Может быть, почтальон упорядочивает запросы? – Sunshine

ответ

0

Проблема заключалась в том, что Postman/Chrome упорядочивает запросы в тот же домен. Так что это ограничение только на стороне клиента.

Выдача запроса от нескольких машин заставила IIS ответить параллельно.

Спасибо всем!