我想在mvc中为我的站点创建一个适当的维护页面。我希望它返回状态码503,以便谷歌稍后会回来索引它。
到目前为止,我已经创建了一个actionfilter,它检查web.config中的“maintenancemode”是否为真。如果是(而且我们还没有转到维护页面),那么它会简单地重定向到~/maintenance/。我能做点什么,让503在这期间被退回,还是不可能?
只需添加一点,我有一个秘密的查询字符串参数,您可以输入它,它创建一个40分钟的cookie,绕过维护屏幕。如果你想知道为什么我要用这个屏幕开始…
更新:
我不知道如何返回一个503状态代码和我选择的页面(一个“马上回来!”页面)但我知道如何退回一个503与丑陋的版本:

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

我现在可以用这个了。如果有人能证实我的想法是正确的…

最佳答案

好吧,看来这是我自己想出来的。我错了方向…
我试图在mvc框架的上下文中创建一个友好的503页面。相反,我只是创建了一个503.htm文件并将其放在根目录中。然后我将iis(在我的主机上)配置为执行503错误重定向到503.htm。
当我的网站启动并处于维护模式时,我有一个actionfilter可以执行以下操作:

filterContext.Result = new HttpStatusCodeResult(503);

但在我去那里之前,我会检查是否输入了“秘密”查询字符串。如果是的话,我会创建一个40分钟的维护cookie,让用户绕过503,这样他就可以测试/玩这个站点。
这就是我如何实现503维护页,同时仍然能够测试的网站。

关于model-view-controller - 如何在MVC中创建适当的503维护页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9617469/

10-13 00:26