Запрос службы приложений Azure занимает 120 секунд, но IIS говорит, что это заняло всего 31 миллисекунду - что происходит?

Наше приложение запрашивает большой объект с вышестоящего сервера по протоколу HTTP и передает полученный в формате gzip ответ клиенту. Запуск приложения локально или на отдельной виртуальной машине приводит к времени отклика <1 с. После развертывания в службе приложений Azure запрос достигает клиента примерно через 120 секунд, как это было замечено с помощью Postman или Chrome. Ведение журнала на уровне приложения показывает, что приложение занимает всего ~ 25 мсек, а трассировка неудавшегося запроса в IIS показывает, что IIS считает, что для обслуживания запроса требуется всего 31 мсек.

Где тратятся лишние 119 с лишним секунд? Размер ответа всего около 100кБ.

Изменить: после некоторого расследования кажется, что большая часть ответа отправляется в ‹1 с, но последний кусок (с размером 0, чтобы указать конец ответа) требует отправки еще 119 с, что предполагает некоторый тайм-аут.


person MikeBrno    schedule 31.05.2018    source источник


Ответы (1)


Проблема заключалась в том, что мы дважды по ошибке устанавливали заголовок кодирования передачи в нашем приложении, сначала с пустым значением "", а затем "разбивкой". Это должно было сбить IIS с толку относительно того, чем закончился ответ. Удаление лишнего заголовка решило нашу проблему.

person MikeBrno    schedule 31.05.2018