Azure - расширенный перезапуск приложения - доступ к экземпляру до его готовности - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть служба приложений Azure, которая работает на 2 экземплярах.Я попытался перезапустить расширенное приложение и установить задержку перезапуска на 90 секунд или более.

Когда один из экземпляров перезапускается, запросы клиентов по-прежнему отправляются перезапускаемому экземпляру.Я вижу запросы, возвращающиеся через 60 секунд.

Я бы подумал, что при перезапуске одного из экземпляров он будет недоступен, пока не будет готов обработать запросы.

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

ASP.Net 4.6.1

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Зонды HTTP и HTTPS строятся на зонде TCP и выдают HTTP GET с указанным путем.Зонды аналогичны зондам HTTP с добавлением оболочки безопасности транспортного уровня (TLS, ранее известной как SSL). датчик работоспособности пытается проверить настроенный порт датчика работоспособности каждые 15 секунд по умолчанию.Вы можете уменьшить время проверки до 5 секунд, как показано ниже:

{
    "name": "http",
    "properties": {
    "protocol": "Http",
    "port": 80,
    "requestPath": "/",
    "intervalInSeconds": 5,
    "numberOfProbes": 2
}

Если у вас есть Шлюз приложений , вы также можете настроить его.

Примечание . Веб-сайты Azure проверяют работоспособность всего сервера, и если сервер не работает, он не будет получать запросы.Для более подробной информации, вы можете обратиться к этой проблеме .

0 голосов
/ 19 февраля 2019

Use the AppInit feature :

With the AppInit feature, a new web app instances are added into the rotation, we ensure that the Application Initialization module reports that the site is fully warmed up before sending it a request from the frontend. To use the feature, add an applicationInitialization section to your web.config like so:
 
<system.webServer>        
  <applicationInitialization remapManagedRequestsTo="/Content/warmup.html"> 
     <add initializationPage="/api/values/100" /> 
  </applicationInitialization>
</system.webServer>
 
You can have multiple initialization pages, and the AppInit module will ensure that all of them return 200 before declaring the site officially warmed up. Meanwhile, you can (optionally) use the remapManagedRequestsTo attribute to have a friendly page showing that the site is still warming up.  Thanks to the AppInit feature, this page will not be visible to customers while adding new instances into rotation, however if a process crashes for whatever reason and enters AppInit again, it will come into play.

Модуль инициализации приложения установлен по умолчанию для веб-приложений Azure.Вы можете напрямую настроить его из файла web.config или через apphost.config XDT.Просто вставьте что-то подобное выше в web.config в корень вашего веб-приложения.

Вы также можете перейти по ссылкам ниже для получения дополнительной информации.https://docs.microsoft.com/en-us/iis/configuration/system.webserver/applicationinitialization/#configuration

https://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...