Веб-приложение Azure отбрасывает запрос во время обмена

Мне нравится идея менять местами слоты в Azure, но, похоже, она работает некорректно.

У меня есть клиентское приложение, которое загружает файлы на сервер, каждый как отдельный запрос. Когда я пытаюсь выполнить подкачку сервера, он будет зависать при загрузке одного из файлов, и этот запрос завершится ошибкой. Точно так же, если я обновлю веб-страницу производственного слота, она зависнет. Это происходит примерно на 30 секунд, а затем все в порядке, но этого достаточно, чтобы прервать запросы.

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

Любые идеи? Это веб-приложение nodeJs.

Спасибо, Сэм


person Sam    schedule 18.08.2016    source источник


Ответы (1)


Ведь разные слоты можно рассматривать как разные приложения. Если ваш запрос ожидает обработки в производственном слоте, когда веб-приложение меняет местами, он должен завершиться ошибкой. Как мы можем найти причину:

Наконец, сайт, который раньше был производственным, а теперь находится в стадии постановки, также должен иметь некоторые настройки, вызывающие его перезапуск. Опять же, это нормально, поскольку это происходит на промежуточном сайте.

Вы можете попробовать использовать try catch, чтобы получить исключение, зарегистрировать неудачный файл и попробовать загрузить этот файл еще раз, когда свопинг вашего сайта будет завершен.

См. https://github.com/projectkudu/kudu/wiki/Understanding-site-swaps и http://ruslany.net/2015/09/how-to-warm-up-azure-web-app-during-deployment-slots-swap/ для получения дополнительной информации об обмене сайтами.

person Gary Liu    schedule 19.08.2016
comment
Привет. У меня есть запрос, но я не могу задать его как вопрос по SO. Подскажите, почему одна и та же виртуальная машина Azure стоит по-разному для разных регионов. Что, если таковые имеются, может быть недостатком работы в регионе (например, на юге Центральной части США), где цена на интересующий меня виртуальный компьютер (D1v2) ниже? - person It's a trap; 19.08.2016
comment
Поскольку я не знаком с бизнес-уровнем, но думаю, что это может быть вызвано расходами на строительство и обслуживание центров обработки данных, услуги в разных регионах разные. И это частый случай, когда одна и та же продукция имеет разную цену в разных странах. А чтобы узнать цену виртуальной машины, вы можете обратиться к лазурному. microsoft.com/en-us/pricing/details/virtual-machines/ для получения дополнительной информации. - person Gary Liu; 19.08.2016
comment
Спасибо. Это означает, что с точки зрения производительности, пропускной способности сети и т. Д. Они идентичны. Не так ли? - person It's a trap; 19.08.2016
comment
Это имеет смысл для меня. Мне кажется, что запросы, отправленные в продакшн (который теперь становится промежуточным), должны быть завершены перед перезапуском, но это только я. Мне просто нужно повторить запрос, как вы сказали. Еще круто, что времени на разогрев нет. :) - person Sam; 20.08.2016
comment
Извините, если это глупые вопросы, я действительно хотел бы знать, есть ли у вас время: будет ли исключение для регистрации? Разве производственное приложение не прекращает работу при перезапуске (после переключения на промежуточное выполнение)? Так как же это вызовет исключение? И поэтому эти запросы просто отбрасываются в середине обработки? Как сказал Сэм, разрешено ли выполнение запросов? Я знаю, что StackOverflow в процессе развертывания дает несколько секунд для выполнения запросов, чтобы ничего не упало. Слоты действительно меняются местами мгновенно или есть несколько секунд свободы действий? Спасибо - person nmit026; 01.12.2016