Мы всегда видим длительное время задержки при первом ускорении из-за сочетания наших внутренних операций кэширования, ускорения IIS aspnet_wp и установления соединений с различными базами данных.
Вероятно, вы также увидите это при последующих посещениях, если IIS настроен на перезапуск процесса после определенного количества секунд, достигнутого порога памяти или другого порога.
Единственное, что вы можете сделать во время начального ускорения, - это тщательно отслеживать активность вашего приложения во время запуска. Обратите особое внимание на соединение с базой данных и кэширование, поскольку мы обнаружили, что именно на этом мы проводим большую часть нашего времени.
Что касается последующих посещений, мы всегда удаляем время перезапуска по умолчанию в IIS (примерно 22 часа) и заменяем его перезаписью с фиксированным временем. Это по-прежнему не помогает при первом запросе, но, по крайней мере, вы будете знать, когда это произойдет.
Если первоначальный запрос действительно является проблемой, и вы не можете понять, как уменьшить его с помощью кода, вы можете запланировать запуск небольшого .Net exe-файла через 10 минут после перезапуска и использовать WebClient, чтобы один раз попасть на сайт. для того, чтобы убрать процесс инициализации.