2011-07-01 22 views
4

没有任何人有任何快速和巧妙的方法来翻转在Windows Azure上运行的MVC应用程序变成了“维护支持模式”聪明的办法把蔚蓝的MVC应用程序进入维护模式

我没有为这个巨大的需求因为我很多地使用了azure staging环境,但偶尔我确实需要确保应用程序的生产实例中没有用户(主要是数据库更新)。

我希望能够在不需要上传新代码或交换部署插槽的情况下即时执行此操作。有什么建议么?

回答

3

最友好的方式是登录。当用户进行身份验证时,请检查数据库中的维护模式标志,并且不要让它们登录。让活动用户继续使用该应用程序,直到他们注销或会话超时。保持活动日志,以便您可以知道所有用户何时到期。

当然,这意味着从将应用程序置于维护模式以及有效就绪时开始需要时间,但启动活动用户并不好。

如果您的应用程序的使用模式如此,则此方法不能确保在合理时间内没有活动,您可以在此基础上添加超时。每隔一段时间检查一次请求的维护标志。不必每隔五分钟就提出一次请求。如有必要,您还可以在本地缓存维护模式值一段合理的时间(几分钟)。

+0

我为整齐采摘道歉,但用户可以过期吗?你是指用户会话吗? –

+0

@卓尔,不需要appologize,这是一个很好的问题。会话可能会过期。默认情况下,会话在20分钟不活动后过期。 –

+0

@ the_drow。用户一直到期。幸运的是,新的也诞生了。 –

3

我会为此使用路由。在布线配置期间检查标志。如果它打开,路由到“维护”屏幕

1

我会建议添加一个尊重你维护模式标志的全局动作过滤器。

+0

如果需要,我可以提供代码示例 –

+5

请为我们其他人做。这种方法听起来很有趣。 –