Как подогреть службу приложений Azure в промежуточном слоте, а затем обменяться с рабочими при использовании виртуальных каталогов - PullRequest
0 голосов
/ 08 мая 2019

У меня есть служба приложений Azure с промежуточным слотом.Я настроил оба, чтобы использовать виртуальные каталоги для включения нескольких веб-сайтов.Папки являются клиентскими, серверными и устаревшими.У меня есть настроенные домены как на рабочем, так и на промежуточном слоте.

Пользовательские домены для рабочего слота:

  • client.sitename.com
  • server.sitename.com
  • legacy.sitename.com

Пользовательские домены для промежуточного слота:

  • clientstaging.sitename.com
  • serverstaging.sitename.com
  • legacystaging.sitename.com

Я обновил сервис приложения, добавив в него файл web.config для обработки запросов навигации в правильный каталог, а также для запусканекоторый код для разогрева приложений.Когда код прогрева завершается, отправляются электронные письма, которые содержат переменные среды, чтобы я мог сказать, какая среда прогрелась.Переменные находятся в самих проектах, поэтому они не связаны с переменными в службе приложений.

Файл web.config текущего рабочего слота содержит следующее

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
    <add initializationPage="/primes/warmup" hostName="client.sitename.com" /> 
    <add initializationPage="/api/v1/primes/warmup?token=tokenId" hostName="server.sitename.com"/>
    <add initializationPage="/?initialise" hostName="legacy.sitename.com"/>      
</applicationInitialization>

The web.configтекущего промежуточного слота содержит следующее

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
    <add initializationPage="/primes/warmup" hostName="clientstaging.sitename.com" /> 
    <add initializationPage="/api/v1/primes/warmup?token=tokenId" hostName="serverstaging.sitename.com"/>
    <add initializationPage="/?initialise" hostName="legacystaging.sitename.com"/>      
</applicationInitialization>

Это работает, пока слоты не поменялись местами.Если я перезагружаю производственный слот после слота, я получаю электронные письма с переменными из промежуточного слота.У web.config на производстве теперь есть hostNames с 'staging', и слот staging выглядит скорее прогретым, чем рабочим слотом.

Производственный слот службы приложения иногда перезагружается, поэтому должна вызываться инициализация applicationInitialization ипрогрейте этот слот, когда это произойдет.

Есть ли способ настроить инициализацию приложения, чтобы оно могло работать для обоих слотов?

...