У меня есть балансировщик нагрузки HaProxy на некоторых веб-серверах IIS. Haproxy проверяет приложения iis по определенному пути, если они запущены или находятся в процессе обслуживания.
Я хотел бы найти решение, в котором я могу безопасно перезагрузить случайную машину IIS, а затем получить ее, чтобы запустить приложение iis для:
- Реагировать на перезагрузку и возвращать определенный код ответа (в данном случае 404) по определенному пути
- Остановите перезагрузку хост-машины на 15 секунд, чтобы убедиться, что все вызовы обработаны, и что haproxy увидел, что этот код состояния 404 сигнализирует о предстоящей перезагрузке сервера iis.
Можно ли каким-либо образом сделать эти две вещи?
Windows Server 2016, .Net 4.7.2
Это не будет работать, так как все вызовы IIS возвращают «Служба недоступна», когда IIS выполняет код Application_End:
protected void Application_End()
{
var log = SystemLogManager.GetLogger(GetType());
try
{
log.Warn("Ending application. Hanging for 15 seconds...");
Thread.Sleep(TimeSpan.FromSeconds(15));
log.Warn("Done end");
}
catch(Exception ex)
{
log.Error("Unexpected error in application end", ex);
}
}