Как остановить Azure для запуска Session_Start каждые 5 минут - PullRequest
1 голос
/ 16 апреля 2019

Я работаю с личным проектом ASP.NET MVC5, размещенным на Azure

Я только что понял, что каждые 5 минут Session_OnStart называется enter image description here

Мой код выглядит так:

public void Session_OnStart()
{
    Guid sessionGuid = Guid.NewGuid();
    HttpContext.Current.Session.Add("_MySession", sessionGuid);
    RegisterSession(sessionGuid);

    logger.Log(LogLevel.Info, "Starting session with guid " + sessionGuid.ToString());
}

Идея состоит в том, чтобы дать GUID каждому пользователю, посещающему веб-сайт, чтобы анонимно следить за тем, что он делает и какие страницы он открывает.

Однако сегодня утром я не посещал свою среду PreProd, и тот факт, что она запускается каждые 5 минут (более или менее 5 секунд), показывает, что это фоновый процесс или что-то, что обращается к веб-сайту.
Этого не происходило при тестировании на локальном хосте, только при размещении на Azure

Как остановить это, чтобы предотвратить запуск процесса Azure Session_OnStart?
Спасибо

1 Ответ

2 голосов
/ 16 апреля 2019

Возможно, у вас всегда включен On. Вы можете отключить его под
Служба приложений -> Конфигурация -> Общие настройки .

Всегда включен . По умолчанию приложения выгружаются, если они простаивают в течение некоторого периода времени. Это позволяет системе сохранять ресурсы. В базовом или стандартном режиме вы можете включить Always On , чтобы приложение постоянно загружалось. Если ваше приложение выполняет непрерывные WebJobs или WebJobs, запускаемые с использованием выражения CRON, вам следует включить Always On , иначе веб-задания могут работать ненадежно.

PS Посмотрите, что Application Insights Пользовательские потоки может сделать для вас.

РЕДАКТИРОВАТЬ:

Когда мой веб-сайт станет общедоступным, будет ли он разумно быстрее при отключенном Always On? Это так медленно без него, это непригодно.

Медленный старт, который вы испытываете, связан с тем, что процесс, выполняющий ваш сайт, останавливается после периода бездействия. Необходимость перезапуска этого процесса занимает некоторое время, отсюда и замедление Это, кстати, из-за ASP.NET, работающего в IIS. Это не специфическая проблема Azure. И, как Ян Кемп сказал: , вы должны исправить свое приложение на медленном.

Существует несколько возможных решений этой проблемы, например Предварительная компиляция вашего сайта . Другой вариант - переключиться на ASP.NET Core, так как это намного быстрее.

Дополнительная информация: Исправление медленной начальной загрузки для IIS

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