#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»/> </правило>