2012-03-08 76 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维护页面,同时仍然能够测试网站。