Подтвердить что ты не робот

Первый запрос сеанса веб-API очень медленный

Я пишу приложение ASP.NET Web API, размещенное на IIS7 (без специальной настройки).

Моя проблема в том, что для каждого первого запроса (на новом компьютере/новом браузере/через некоторое время...) существует долгая задержка - даже на запросы, возвращающие константы!

Я читал о "разогревающих" сценариях, но это не проблема. Похоже, что веб-сервер пытается создать сеанс, и он занимает очень много времени. Любые предложения?

ИЗМЕНИТЬ

Я думаю, что задержка вызвана созданием рабочего процесса для каждого нового сеанса. Теперь вопрос в том, почему он настолько медленный, и почему веб-сервер не повторно использует жизненные рабочие процессы для обслуживания запросов?

Я настроил пул приложений для ограничения рабочих процессов до 5 без таймаута (установлен на 0). Это привело к тому, что первые пять сеансов были медленными по первым запросам (с которыми я могу жить), и теперь рабочие процессы оживают. Но удивительно, что время от времени запрос медленный снова!

4b9b3361

Ответ 1

Если вы используете Windows Server 2008 R2, вы можете configure the Auto-Start feature в пуле приложений. Также в свойствах пула приложений вы должны отключить его от повторного использования через регулярные промежутки времени. Имейте в виду, что, хотя это будет ограничивать медленность, пул приложений может быть повторно использован IIS. С помощью функции автозапуска она будет автоматически загружена в память, но код в вашем Application_Start будет выполнен при следующем запросе. Таким образом, вы все еще можете наблюдать некоторую медлительность.

Ответ 2

Другой причиной может быть https. Наш сайт может работать с https и без него. Задержка на первой странице (от 5 до 15 секунд) происходит только при использовании https. В этом сообщении объясняется проблема с https и исправлением:

https выпуск команды MCS