我刚刚设置了"维护"我的Appharbor Web应用程序的模式。通过设置配置变量,该站点将用户重定向到自定义" down用于维护"页。我希望以HTTP 503状态返回此页面,因此该网站在被删除时不会被编入索引。我在动作中设置响应代码如下:
public ActionResult Maintenance()
{
Response.StatusCode = 503;
return View();
}
这一切都按我想要的方式在本地服务器上运行。我使用503状态代码获取自定义视图。但是,一旦我部署到AppHarbor,我就会得到一个简单的nginx 503错误页面。似乎nginx可能正在拦截响应并返回自己的错误。有关如何使自定义主体与503状态一起显示的任何想法?这是我看到的原始反应:
HTTP/1.1 503 Service Unavailable
Server: nginx
Date: Fri, 07 Jun 2013 19:26:09 GMT
Content-Type: text/html
Content-Length: 27
Connection: keep-alive
Cache-Control: private
The service is unavailable.
答案 0 :(得分:5)
消息The service is unavailable.
实际上是IIS的默认HTTP 503消息。问题是IIS(不是nginx)默认拦截并重写响应。
您可以使用httpErrors
中的web.config
元素来配置此行为,如下所示:
<system.webServer>
<httpErrors existingResponse="PassThrough"></httpErrors>
</system.webServer>
请注意,配置此选项可能会对您的应用程序产生安全隐患。您可以详细了解如何配置httpErrors
in this article