Слот для разогрева и развертывания Azure ASP.NET
Я использую сервисы приложений ASP.NET MVC 5 и Azure Premium с параметром AlwaysRunning "on".
Я создал слот развертывания для веб-приложения, развернул новую версию, открыл URL-адрес слота, и все было быстро и стабильно. Я переключился на производственную среду, и после завершения операции подкачки веб-приложение работало медленно, как если бы я вручную развернул его в PROD. Мне пришлось ждать больше минуты, чтобы мое приложение снова заработало. Исходя из того, что я прочитал, я подумал, что приложение будет разогреваться после замены, но это не сработало.
Почему после обмена это было так медленно? даже страницы, которые не попадают в БД, как форма аутентификации.
ОБНОВЛЕНИЕ: после перехода на план V2 (хранилище SSD) приложение перезапускается менее чем за 2 минуты:)
1 ответ
Чтобы прогреть сайт во время обмена, вы должны настроить маршруты для попадания. Вам нужно что-то вроде этого в web.config ( ссылка):
<system.webServer>
<applicationInitialization >
<add initializationPage="/warmup-cache" hostName="appinit-warmup.azurewebsites.net"/>
</applicationInitialization>
<system.webServer>
Скорее всего, приложение перекомпилирует Razor-представления, поэтому на это требуется время. Вы можете предварительно скомпилировать Razor-представления, что очень поможет ( ссылка). Также поможет маршрут разогрева, подобный указанному выше, который поможет предварительно заполнить кэши.