当我的网站处于维护状态时,我正在实施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>
这是有道理的。但我怀疑它是评论它重定向到我的自定义页面。
感谢任何帮助。