我正在开发ASP.net MVC-5项目,我是初学者。截至目前,我了解MVC的基础知识,能够显示页面并发布帖子和获取请求。但我遇到一个问题,我得到“504网关超时错误”,我需要实现一个功能,如果客户端得到“504网关超时错误”我应该能够显示一个特定的页面,如“有问题”而不是标准错误。从下面开始是我做的。
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="On" redirectMode="ResponseRewrite">
</customErrors>
</system.web>
但我还需要改变或添加什么。有人可以在这里指导我。我迷路了。
答案 0 :(得分:3)
如果您的ASP.NET MVC应用程序由IIS(或其他代理服务器)托管,则IIS会返回504错误并将其发送到浏览器,因为您的应用程序未及时响应请求。 IIS已超时(可为每个网站配置),如果达到此值,则返回504。
在这种情况下,您无法在应用程序中定义自定义错误页面,因为它没有做出反应。
您可以将IIS配置为服务器自定义错误页面。这个video tutorial显示了如何执行此操作。
答案 1 :(得分:0)
ASP实际上并没有返回那些页面,实际上是IIS。
Check out this SO on configuring IIS to let you return custom error pages
基本上您需要配置这些设置:
<system.web>
<customErrors mode="On" defaultRedirect="~/Error">
<!--Use whatever paths you need here, along with the accompanying status code -->
<error redirect="~/Error/NotFound" statusCode="404" />
</customErrors>
</system.web>
并创建一个控制器来处理错误,如下所示:
public class ErrorController : Controller
{
public ViewResult Index()
{
return View();
}
public ViewResult NotFound()
{
Response.StatusCode = 404;
return View();
}
}
除了您需要匹配Action的任何视图。