出现404错误页面怎么解决(服务器错误404解决方法)

asp.net core mvc 对应着 .NET Framework 中的 ASP.NET MVC, 前者可以跨平台,可扩展,高性能,不过令人惊讶的是,虽然 ASP.NET Core 提供了大量的可选项可以完美的处理 404 错误,但 ASP.NET Core MVC 在默认情况下并没有选择它们,你说奇怪不?

这就造成了当请求一个不存在的页面时,应用程序将会返回一个 404 错误,ASP.NET Core MVC 目前会展示一个浏览器通用的错误页,如下图所示:

出现404错误页面怎么解决(服务器错误404解决方法)

接下来我们尝试在浏览器中输入一个不存在的网址,比如说:http://localhost:6440/welcome, 这时候 ASP.NET Core MVC 引擎将会访问这个地址的资源,可想而知,引擎肯定会返回一个 404 错误,你也会看到如下错误页,通常情况下这是非常让人难堪的,对吧。

出现404错误页面怎么解决(服务器错误404解决方法)

你可以利用UseStatusCodePagesWithReExecute 中间件来处理 那种 Response 还没开始构建 就遇到的一些不成功的状态,有点绕哈,因此这个中间件不会处理 Response status 等于 404 的情况,当 404 发生的时候,这个中间件要做的就是将 request 重定向到另外一个 Action 去处理这个错误。

下面的代码展示了如何使用这个中间件将 request 重定向到另外一个 action 方法。

app.UseStatusCodePagesWithReExecute("/Home/HandleError/{0}");

然后再来看一下被重定向的 Action 方法。

[Route("/Home/HandleError/{code:int}")]public IActionResult HandleError(int code){   ViewData["ErrorMessage"] = $"Error occurred. The ErrorCode is: {code}";   return View("~/Views/Shared/HandleError.cshtml");}

现在我把展示错误信息的 HandleError 视图的创建留给你去实现吧!

最后,你可能想为一些错误码创建一些特定的view,比如说,你可以创建 Home/Error/500.cshtml 或者 Home/Error/404.cshtml 视图,然后根据 http status code 的值重定向到合适的错误页。

另外一种处理 404 错误的方式是使用一个自定义的页面,然后在页面上设置一些特定的错误代码,这样也方便隐藏一些比较重要的信息,比如将 404 改成 服务压力大,请联系管理员 等等,一旦应用程序发生错误,你可以将用户导向你设置的错误页,然后展示你设置的错误信息。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论