强制503重定向不会显示自定义页面

时间:2016-02-01 11:14:01

标签: asp.net redirect http-status-code-503

当我的网站处于维护状态时,我正在实施google's best practice以获取503状态代码。

我是通过检查web.config中的值然后使用以下代码将流重定向到我的自定义页面来实现的

Response.Redirect("/maintenance", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();

在“维护”页面的Page_Load()中,我有

Response.StatusCode = 503;
Response.StatusDescription = "HTTP/1.1 503 Service Temporarily Unavailable";
Response.AddHeader("Retry-After", "Sat, 30 Mar 2016 23:00:00 GMT");

这里发生的奇怪事情是运行上面的代码向我显示了IIS的错误页面,而不是我的自定义页面。同样的代码也适用于我的其他应用程序。

如果我没有分配给Response.StatusCode,它可以正常工作。

我的web.config中有一个条目,用于404重定向,如此

  <httpErrors errorMode="Detailed" existingResponse="Replace" defaultResponseMode="Redirect">
      <remove statusCode="404" subStatusCode="-1" />
      <error statusCode="404" prefixLanguageFilePath="" path="/error-page" responseMode="ExecuteURL" />
  </httpErrors>

这是有道理的。但我怀疑它是评论它重定向到我的自定义页面。

感谢任何帮助。

0 个答案:

没有答案