Умный способ перевести приложение Azure MVC в режим обслуживания - PullRequest
4 голосов
/ 01 июля 2011

Есть ли у кого-нибудь быстрые и умные способы перевести приложение MVC, работающее в Windows Azure, в «режим обслуживания»

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

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

Ответы [ 3 ]

3 голосов
/ 01 июля 2011

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

3 голосов
/ 01 июля 2011

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

Конечно, это означает, что с момента, когда вы переведете приложение в режим обслуживания, и когда оно будет эффективно готово, потребуется время, но не стоит загружать активного пользователя.

Если шаблон использования вашего приложения делает это таким образом, что эта методология не гарантирует отсутствие активности в разумные сроки, вы можете добавить таймаут поверх этого. Периодически проверяйте один и тот же флаг обслуживания для запроса. Не должен быть каждый запрос, но каждые пять минут или около того. При необходимости вы также можете кэшировать значение режима обслуживания локально в течение разумного периода времени (несколько минут).

1 голос
/ 01 июля 2011

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

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