когда я получаю доступ к любой странице своего веб-сайта MVC ASP.NET в первый раз, когда затем этот первый запрос является медленным. Требуется приблизительно 4-5 секунд для загрузки. Но каждый после запроса к любой странице быстр.
Когда я ожидаю несколько минут или час затем, каждый первый запрос является медленным снова. Каждый после запроса быстр.
Я думаю, что IIS 7 компилирует код, и сохраните его в памяти. Через какое-то время это удалит его из памяти, таким образом, это должно будет скомпилировать его снова.
Что я могу сделать, тот каждый первый запрос с такой скоростью, как каждый после запроса? (Не предварительно компилируя мой источник, если возможный)
Заранее большое спасибо!
Это может быть параметр перезапуска рабочих процессов на пул приложений, проверьте значение для него и либо выключите, либо увеличьте его.
Также может быть рабочий процесс завершения работы после простоя из-за недостаточной производительности для пула приложений.
Это, вероятно, второе, так как оно по умолчанию составляет 20 минут, первое - 29 часов, я думаю.
Если у вас есть постоянный поток посетителей, это не должно быть проблемой в производственной среде. Кроме того, если вы физически не изменяете какой-либо из исходных файлов, IIS не будет перекомпилировать его при запуске вашего приложения.
Также обратите внимание на доступные настройки компиляции .NET: http://technet.microsoft.com/en-us/library/cc725812 (WS.10) .aspx
Если это производственный сервер, почему бы не попробовать добавить монитор веб-сайта; такие как робот времени . Он в основном запрашивает заголовки ваших веб-сайтов и каждые 5 минут получает коды состояния, такие как «200-ok», «404-not found» и т. Д. Таким образом, ваш сайт всегда запускается и не влияет на файлы журналов / аналитику, поскольку запрашиваются только заголовки. Я использую это для своих облачных сайтов, так как считаю, что им требуется 5 секунд для раскрутки, что влияет на загрузку сайта. С монитором они мгновенные.
Да, это бесплатно для 50 сайтов!