Служба приложений Azure — как сделать так, чтобы она всегда работала для конкретного приложения?

#asp.net #azure #asp.net-web-api #azure-web-app-service

#asp.net #azure #asp.net-web-api #azure-web-app-service

Вопрос:

У нас есть служба приложений Azure, в которой развернуто несколько веб-приложений:

 / - root
/app1 - first application
/app2 - second application
...
  

В корневом каталоге у нас есть простой веб-сайт, а приложения ASP.NET Службы веб-API.
приложение 1 выполняет некоторые фоновые задачи, поэтому нам нужно, чтобы оно всегда было активным. Для достижения этого мы устанавливаем опцию Always On в настройках службы приложений. Мы ожидаем, что и корневой веб-сайт, и все приложения будут загружаться всегда, но поведение отличается: кажется, что приложения не остаются в живых.

Наши фоновые задания (на базе Hangfire) запускаются не по расписанию, но если какой-либо пользователь обращается к приложению с любым запросом, приложение пробуждается и начинает обрабатывать задания.

Итак, вопрос в следующем: можем ли мы каким-то образом указать Always On feature, чтобы пинговать не корень сайта, а конкретный URL-адрес приложения?

Спасибо.

Комментарии:

1. Вы хотите взглянуть на azure webjob для своих фоновых задач?

2. Томас, спасибо за предложение, мы будем рассматривать это как последнее средство, потому что мы не хотим быть сильно привязанными к Azure. Мы хотим иметь возможность мигрировать из Azure в локальную среду в любое время.

Ответ №1:

Я еще не использовал ее, но вы, вероятно, ищете эту функцию: Инициализация приложения для прогрева определенных страниц при запуске пула приложений.

Это должно позволить вам указать несколько страниц.

Комментарии:

1. Мартин, спасибо. Но это не совсем то, что я ищу: мне нужно предотвратить остановку пула приложений — мое приложение должно быть активным (в памяти) 24/7, чтобы обрабатывать фоновые задания по расписанию.

2. Разве вы не можете объединить это с функцией always on и правилом перенаправления, которое вызывает прогрев?

3. Это хорошая идея. Что-то вроде этого? <имя правила= «Перенаправлять запросы AlwaysOn из root на пользовательский URL» stopProcessing =»true»> <сопоставить url =»^ $»/> <условия> <добавить ввод =»{HTTP_USER_AGENT}» шаблон =»^AlwaysOn $» /> </ conditions> <тип действия= «Перенаправить» url =» mycustomdomain.com/app1/ping » redirectType=»Permanent» appendQueryString=»false»/> </правило>