我在web.config中设置了customErrors
<customErrors mode="On" defaultRedirect="/Error/GeneralError">
<error statusCode="404" redirect="/Error/NotFound"/>
</customErrors>
这在本地工作正常。 404引发404。在共享主机上,它将引发标准服务器404页面,除非我专门将404设置为指向/Error/NotFound。没关系。现在它将显示自定义404页面,但响应状态代码为200。因此,如果我尝试抛出Response.StatusCode = 404;在我的ErrorController中的NotFound操作中,如下所示:
public class ErrorController : Controller
{
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View();
}
}
服务器抛出状态码500 Internal Server Error,但是我的GeneralError页面没有显示,只是空白的空白页面,没有任何来源。
我尝试了许多不同的组合,但似乎找不到如何使它显示我的自定义404页面以及404响应的方法。
有任何想法吗?
最佳答案
我在这里发现了一些有趣的信息:http://blog.angrypets.com/2008/03/responsetryskip.html
Response.TrySkipIisCustomErrors = true;
在TrySkipIisCustomErrors
之后将true
设置为Response.StatusCode = 404;
可以解决此问题。
关于asp.net-mvc - ASP.NET MVC自定义错误页面(StatusCode 404抛出500),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376739/