Я работаю над веб-приложением, написанным на ASP.Net, но которое включает вызовы веб-службы javascript (на тот же сайт) для динамического заполнения некоторых страниц. Он размещен в IIS 8.5 на сервере Windows 2012 R2.
При устранении общих проблем с производительностью я определил, что одновременные запросы обрабатываются последовательно, а не одновременно. Я не подтвердил, что между всеми пользователями обрабатывается только один запрос или по одному для каждого пользователя, хотя я подозреваю первое.
Чтобы подтвердить это, я написал дополнительную функцию в своем веб-сервисе, которая ничего не делает, кроме сна в течение 5 секунд, а затем написал функцию javascript, которая выполняет вызов jQuery AJAX для этой функции несколько раз в цикле for. Я подтвердил, что вызов выполняется асинхронно, но завершенные вызовы разделяются интервалом ожидания. Кроме того, журналы сервера показывают, что время обработки каждого вызова увеличивается на 5 секунд. Итак, очевидно, что все вызовы принимаются немедленно, но фактически не могут выполнить свой метод сна, пока не будут завершены все предыдущие вызовы.
Итак, суть вопроса: как заставить IIS обрабатывать мои запросы одновременно?
Пока что я предполагаю, что он каким-то образом работает в режиме отладки, поскольку это якобы заставляет его обрабатывать запросы последовательно. Я не могу найти ничего в моем профиле публикации или web.config, что позволило бы включить режим отладки, и я добавил "" в свой machine.config, но безрезультатно. Я также увеличил «Максимальное количество рабочих процессов» в настройках пула приложений, но безуспешно.
Что еще я могу попробовать? Где еще мне посмотреть?