2012-03-08 28 views
0

我想爲我的網站在MVC中創建一個適當的維護頁面。我希望它返回狀態代碼503,以便Google稍後返回索引。如何在MVC中創建正確的503維護頁面?

到目前爲止,我已經創建了一個ActionFilter來檢查web.config中的「MaintenanceMode」是否爲TRUE。如果是(我們還沒有進入維護頁面),它會重定向到〜/ Maintenance /。我能做些什麼嗎?所有這一切都返回503,還是不可能?

只是要添加,我有一個祕密的查詢字符串參數,您可以鍵入,它會創建一個繞過維護屏幕40分鐘的cookie。只要提到這一點的情況下,你想知道爲什麼我有這個屏幕開始與...

更新:

我無法弄清楚如何與我選擇的頁面返回503個狀態碼(一「馬上回來!」頁)...但我知道如何返回一個醜陋的版本503:

filterContext.HttpContext.Response.StatusCode = 503; 
filterContext.Result = new HttpStatusCodeResult(503); 

我現在可以去這個。如果有人可以確認我在這裏正確思考...

回答

0

好吧,看起來像我自己想出來的。我正在走錯了方向...

我試圖在MVC框架的上下文中創建一個友好的503頁面。相反,我只是創建了一個503.htm文件並將其放入根目錄中。然後我配置IIS(在我的主機上)做503錯誤重定向到503.htm。

當我的網站了,在維護模式下,我有,這是否一個ActionFilter:

filterContext.Result = new HttpStatusCodeResult(503); 

但我去那裏之前,我可以檢查是否進入了一個「祕密」的查詢字符串。如果是這樣,我創建一個維護cookie 40分鐘,我讓用戶繞過503,以便他可以測試/使用該站點。

這是我如何實現503維護頁面,同時仍然能夠測試網站。