Как заблокировать веб -приложение для технического обслуживания без потери неспасенной работы?

StackOverflow https://stackoverflow.com/questions/19854630

Вопрос

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

Вот некоторые из вопросов, о которых я могу подумать:

  • Должна ли каждая страница перенаправить на страницу «Сайт для обслуживания» или есть более центральный способ предотвращения взаимодействия?
  • Как централизовать запланированное обслуживание, так что пользовательские операции блокируются до того, как сайт будет заблокирован. Таким образом предотвращая потерю неспасенной работы.

Приложение управляется данными и реализует области транзакций на бизнес-уровне. Он не использует балансировку нагрузки или репликацию. Я могу ошибаться, но не «чувствует себя правильно», чтобы BLL справлялся с этим. Любые предложения или ссылки на статьи будут оценены.

Это было полезно?

Решение

Один из способов создания страницы обслуживания - использовать функцию APP_OFFLINE.HTM IIS. Используя эту функцию, вы сможете показать одну и ту же HTML -страницу для всех ваших пользователей, уведомляющих их о техническом обслуживании.

Здесь есть хороший пост в Stackoverflow об этом. ASP.NET 2.0 - Как использовать app_offline.htm.

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

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

Другие советы

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

Рассмотрим в качестве примера Netflix: есть ли у него заблокированное окно обслуживания? Не то чтобы широкая публика когда -либо знала. :-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top