首页 电商 正文

出现404错误页面怎么解决,服务器APS.NET程序出现404错误解决方法

2024-03-21 17:48
admin

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

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

这篇文章我准备讨论3种方式来优雅的处理这种404错误。

接下来我会在VisualStudio2019中创建一个ASP.NETCoreMVC项目,用这个项目去展示如何处理404错误。

然后把ASP.NETCoreMVC项目跑起来,你会看到应用程序默认的首页,上面还带一行welcome的欢迎语,如下图所示:

接下来我们尝试在浏览器中输入一个不存在的网址,比如说:

http://localhost:6440/welcome,这时候ASP.NETCoreMVC引擎将会访问这个地址的资源,可想而知,引擎肯定会返回一个404错误,你也会看到如下错误页,通常情况下这是非常让人难堪的,对吧。

检查ASP.NETCoreMVC的Response.StatusCode

有几种方式可以比较完美的处理这种默认的404错误,一个简单的方案就是去检查response的http状态码,一旦发现这个status=404,你可以重定向到一个web中存在的页面或者一个特定的错误页,下面的代码展示了,你可以在Startup.Configure方法中进行全局判断,一旦发现404错误就导向home页面。

publicclassStartup

{

publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv)

{

app.Use(async(context,next)=>

{

awaitnext();

if(context.Response.StatusCode==404)

{

context.Request.Path="/Home";

awaitnext();

}

});

}

}

接下来运行web程序,然后键入

http://localhost:6440/welcome,你会发现最终展示了home页面。

下面是Configure方法的完整代码。

publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv)

{

if(env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

else

{

app.UseExceptionHandler("/Home/Error");

}

app.Use(async(context,next)=>

{

awaitnext();

if(context.Response.StatusCode==404)

{

context.Request.Path="/Home";

awaitnext();

}

});

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints=>

{

endpoints.MapControllerRoute(

name:"default",

pattern:"{controller=Home}/{action=Index}/{id?}");

});

}

使用UseStatusCodePages中间件

第二种可选的解决方案是,采用ASP.NETCore中内置的UseStatusCodePages中间件,下面的代码展示了如何在Startup.Configure方法中去实现StatusCodePages。

publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv)

{

app.UseStatusCodePages();

//Othercode

}

现在你可以把程序跑起来然后浏览一下这个不存在的资源,下图展示了这种情况下的输出结果:

使用UseStatusCodePagesWithReExecute中间件

你可以利用

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

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

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

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

[Route("/Home/HandleError/{code:int}")]

publicIActionResultHandleError(intcode)

{

ViewData["ErrorMessage"]=$"Erroroccurred.TheErrorCodeis:{code}";

returnView("~/Views/Shared/HandleError.cshtml");

}

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

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

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

相关文章

  • Linux服务器宝塔面板操作方法:404和301如何设置

    Linux服务器宝塔面板操作方法:404和301如何设置 很多新手朋友利用服务器建站有个疑问,就是服务器可以像虚拟主机一样建立临时站点,拥有临时域名吗?其实是可以的,不过需要服务器配置一个虚拟主机,最好的方法就是在本地建站,上线的时候把网站搬迁过来。,解析好以后打开宝塔面板点击网站,点击添加站点,把刚才解析的俩个域名添加进去,备注可以自己随便填写或者默认都可以,这里可以选择创建FTP和数据库,建议一次性创建好,PHP版本,你选择一键环境配置时候的版本。,

    2024-03-21 21:05
  • 搜索排名专家教你怎么做好企业网站的排名优化 网站编辑如何撰写文案才能做好搜索排名效果?

    搜索排名专家教你怎么做好企业网站的排名优化 网站编辑如何撰写文案才能做好搜索排名效果? 同时要避免在网站页面上加一些单击事件,用户只要一点击鼠标就弹出一些别的网站页面,有时候会弹出好多个广告页面,这样的情况需要大家注意一下!,想必大家也都知道,在一些网站上会出现留言、注册后才可以进行互动,在我们注册时候须填的项目非常的多。,一般而言,长尾关键词在文章的开头、中间、末尾各布局一次就可以了。

    2024-03-21 18:12
  • 「网站优化」web优化404不起作用吗对SEO有什么影响 「万词霸屏」万词霸屏系统可以做核心词吗

    「网站优化」web优化404不起作用吗对SEO有什么影响 「万词霸屏」万词霸屏系统可以做核心词吗 对于许多企业或个人网站来说,行业SEO优化正变得越来越激烈。,换个概念想,如果万次霸屏系统可以做热词、行业词那么就打乱了seo行业市场了,seo优化人员不就是可以下岗了吗关键词价格低、排名好、又能做多首页霸屏,又能做热门词霸屏,这样的产品不存在,没有哪一家霸屏公司可以承诺说我们有这样的效果的,不信你可以去各个万词霸屏公司挨个问!,任何产品都是不完美的,社会就是由众多不完美的人组合在一起,其实说实话

    2024-03-21 18:04
  • 网站页面出现很多404该怎么办 提升网站权重主要注意什么

    网站页面出现很多404该怎么办 提升网站权重主要注意什么 网站页面出现很多404该怎么办通过上文的介绍,明白在信息时代,网页内容常遭删改。,BBC互联网研究专家PaulMyers告诉我们网上信息的存储妙招和好用工具。,3、高质量的外部链接外链这一块现在也是老生常谈了,其重要性不言而喻。

    2024-03-21 18:00
  • 京东店铺的瀑布流效果代码模板

    京东店铺的瀑布流效果代码模板 .userjLatticetaomei-20140411.pubu_cont{position:relative;width:990px;height:1020px;}.userjLatticetaomei-20140411.pubu_cont.cont_box{position:absolute;/*border:solid1px#000;*/width:229px;padding:6px;z-

    2024-03-20 13:45
  • 做好独立站的基础要求是什么?要注意哪些?

    做好独立站的基础要求是什么?要注意哪些? 外挂式检查:重点检查首页同步加载的JS,插件弹窗尽量在客户3-5页后载入,许多卖家设置在客户刚刚进入网站时展示一些订阅或者优惠券,热卖弹窗。,推荐用户在浏览了3个页面后再显示弹窗类的内容。,6、基础应用:多种语言:google免费翻译插件;小语种方案,与二级域名配合,便于收录。

    2024-03-19 17:04