2011-07-01 21 views
4

沒有任何人有任何快速和巧妙的方法來翻轉在Windows Azure上運行的MVC應用程序變成了「維護支持模式」聰明的辦法把蔚藍的MVC應用程序進入維護模式

我沒有爲這個巨大的需求因爲我很多地使用了azure staging環境,但偶爾我確實需要確保應用程序的生產實例中沒有用戶(主要是數據庫更新)。

我希望能夠在不需要上傳新代碼或交換部署插槽的情況下即時執行此操作。有什麼建議麼?

回答

3

最友好的方式是登錄。當用戶進行身份驗證時,請檢查數據庫中的維護模式標誌,並且不要讓它們登錄。讓活動用戶繼續使用該應用程序,直到他們註銷或會話超時。保持活動日誌,以便您可以知道所有用戶何時到期。

當然,這意味着從將應用程序置於維護模式以及有效就緒時開始需要時間,但啓動活動用戶並不好。

如果您的應用程序的使用模式如此,則此方法不能確保在合理時間內沒有活動,您可以在此基礎上添加超時。每隔一段時間檢查一次請求的維護標誌。不必每隔五分鐘就提出一次請求。如有必要,您還可以在本地緩存維護模式值一段合理的時間(幾分鐘)。

+0

我爲整齊採摘道歉,但用戶可以過期嗎?你是指用戶會話嗎? –

+0

@卓爾,不需要appologize,這是一個很好的問題。會話可能會過期。默認情況下,會話在20分鐘不活動後過期。 –

+0

@ the_drow。用戶一直到期。幸運的是,新的也誕生了。 –

3

我會爲此使用路由。在佈線配置期間檢查標誌。如果它打開,路由到「維護」屏幕

1

我會建議添加一個尊重你維護模式標誌的全局動作過濾器。

+0

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

+5

請爲我們其他人做。這種方法聽起來很有趣。 –