Слот для разогрева и развертывания 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-представления, что очень поможет ( ссылка). Также поможет маршрут разогрева, подобный указанному выше, который поможет предварительно заполнить кэши.

Другие вопросы по тегам