您應該配置在你的web.config文件
<httpErrors>
部分下
<system.webServer>
節組。
請參閱這篇文章:
http://www.iis.net/ConfigReference/system.webServer/httpErrors
此外,您可以使用,你在你的問題鏈接錯誤控制,但是初始流量應該由IIS進行管理。通過本節你可以指示IIS它應該執行由你的控制器管理的URL。
另請注意,在您的控制器的操作中正確的Response.Status屬性字符串作爲建議的解決方案返回「200 OK」,這可能會讓瀏覽器感到困惑。例如
public class ErrorsController : Controller
{
public ActionResult NotFound()
{
Response.Status = "404 Not Found";
return View();
}
public ActionResult ServerError()
{
byte[] delay = new byte[1];
RandomNumberGenerator prng = new RNGCryptoServiceProvider();
prng.GetBytes(delay);
Thread.Sleep((int)delay[0]);
IDisposable disposable = prng as IDisposable;
if (disposable != null) { disposable.Dispose(); }
Response.Status = "500 Internal Server Error";
return View();
}
}
配置例子:
<httpErrors defaultPath="/error.htm" errorMode="Custom" existingResponse="Replace" defaultResponseMode="ExecuteURL">
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="500" path="/errors/servererror/" responseMode="ExecuteURL" />
<error statusCode="404" path="/errors/notfound/" responseMode="ExecuteURL" />
</httpErrors>
您可以使用 「subStatusCode」 屬性控制404.3等。
可能重複[如何正確處理ASP.NET MVC中的404?](http://stackoverflow.com/questions/619895/how-can-i-properly-handle-404-in-asp-net -mvc) –