iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET Core怎么处理错误环境
  • 611
分享到

ASP.NET Core怎么处理错误环境

2023-06-29 20:06:46 611人浏览 独家记忆
摘要

这篇文章主要介绍“asp.net Core怎么处理错误环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.net Core怎么处理错误环境”文章能帮助大家解决问题。1.前言

这篇文章主要介绍“asp.net Core怎么处理错误环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.net Core怎么处理错误环境”文章能帮助大家解决问题。

1.前言

ASP.net core处理错误环境区分为两种:开发环境和非开发环境。

  • 开发环境:开发人员异常页。

  • 非开发环境:异常处理程序页、状态代码页。

在Startup.Configure方法里面我们会看到如下代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env){    if (env.IsDevelopment())    {       //开发环境    }     else    {       //非开发环境    }}

env.IsDevelopment()是判断应用程序运行是在开发环境还是非开发环境,具体配置在Properties/launchSettings.JSON,找到ASPnetcore_ENVIRONMENT属性,默认值是开发环境(Development),具体环境配置知识点后面我们再来学习下。

2.开发人员异常页

向Startup.Configure方法添加代码,以当应用在开发环境中运行时启用此页:

if (env.IsDevelopment()){    app.UseDeveloperExceptionPage();}

开发人员异常页仅当应用程序在开发环境中运行时才会启用,而且调用UseDeveloperExceptionPage要配置于任何要捕获其异常的中间件前面。
该页包括关于异常和请求的以下信息:

  • 堆栈跟踪

  • 查询字符串参数(如果有)

  • Cookie(如果有)

  • request header

3.异常处理程序页

在下面的示例中,UseExceptionHandler 在非开发环境中添加异常处理中间件:

if (env.IsDevelopment()){    app.UseDeveloperExceptionPage();}else{    app.UseExceptionHandler("/Error");    app.UseHsts();}

Razor Pages应用模板提供“页面”文件夹中的Error页(.cshtml)和PageModel类(ErrORModel)。 对于mvc应用,项目模板包括Error操作方法和Error视图。操作方法如下:

[AllowAnonymous][ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]public IActionResult Error(){    return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}

不要使用HTTP方法属性(如HttpGet)修饰错误处理程序操作方法,因为会阻止某些请求访问的方法。同时最好允许匿名访问方法,以便未经身份验证的用户能够接收错误视图。
UseExceptionHandler中间还可以使用lambda进行异常处理:

if (env.IsDevelopment()){    app.UseDeveloperExceptionPage();}else{   app.UseExceptionHandler(errorApp =>   {        errorApp.Run(async context =>        {            context.Response.StatusCode = 500;            context.Response.ContentType = "text/html";            await context.Response.WriteAsync("<html lang=\"en\"><body>\r\n");            await context.Response.WriteAsync("ERROR!<br><br>\r\n");            var exceptionHandlerPathFeature =                 context.Features.Get<IExceptionHandlerPathFeature>();            // Use exceptionHandlerPathFeature to process the exception (for example,             // logging), but do NOT expose sensitive error information directly to             // the client.            if (exceptionHandlerPathFeature?.Error is FileNotFoundException)            {                await context.Response.WriteAsync("File error thrown!<br><br>\r\n");            }            await context.Response.WriteAsync("<a href=\"/\">Home</a><br>\r\n");            await context.Response.WriteAsync("</body></html>\r\n");            await context.Response.WriteAsync(new string(' ', 512)); // IE padding        });    });app.UseHsts();}

4.状态代码页

一般情况下,ASP.net core应用程序不会为HTTP状态代码(如“404-未找到”)提供状态代码页的。但若要提供状态代码页,可以使用状态代码页中间件。

4.1 UseStatusCodePages中间件

若要启用常见错误状态代码的默认纯文本处理程序,请在Startup.Configure方法中调用 UseStatusCodePages:

app.UseStatusCodePages();

而这里有一点要注意的是,调用UseStatusCodePages中间件要在例如静态文件中间件和 MVC中间件等中间件前面调用:

app.UseStatusCodePages();app.UseStaticFiles();app.UseMvc(routes =>{    routes.MapRoute(        name: "default",        template: "{controller=Home}/{action=Index}/{id?}");});

下面通过运行应用程序在浏览器地址栏上输入一个不存在地址看看配置该中间件后的效果:

ASP.NET Core怎么处理错误环境

很显然当我们输入一个不存在地址之后就会打开一个处理错误的状态代码页。
UseStatusCodePages中间件还有两种重载使用方法,具体运行效果就不一一截图了,大家自行测试

  • 包含格式字符串的 UseStatusCodePages:

app.UseStatusCodePages("text/plain", "Status code page, status code: {0}");
  • 包含lambda的UseStatusCodePages:

app.UseStatusCodePages(async context =>{    context.HttpContext.Response.ContentType = "text/plain";    await context.HttpContext.Response.WriteAsync(        "Status code page, status code: " +        context.HttpContext.Response.StatusCode);});

4.2 UseStatusCodePagesWithRedirect中间件

  • 向客户端发送“302 - 已找到”状态代码。

  • 将客户端重定向到URL模板中的位置。

下面我们在Startup.Configure方法中调用UseStatusCodePagesWithRedirect:

app.UseStatusCodePagesWithRedirects("/Error/{0}");

运行应用程序在浏览器上输入不存在地址https://localhost:44353/1看看配置该中间件后的效果,你会发觉当我们输入上述地址后会跳转到https://localhost:44353/Error/404链接去了,并显示:

ASP.NET Core怎么处理错误环境

这就说明白当我们输入一个不存在地址之后会重定向中间件设置的地址页面去了。

关于“ASP.NET Core怎么处理错误环境”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: ASP.NET Core怎么处理错误环境

本文链接: https://www.lsjlt.com/news/326428.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core怎么处理错误环境
    这篇文章主要介绍“ASP.NET Core怎么处理错误环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core怎么处理错误环境”文章能帮助大家解决问题。1.前言...
    99+
    2023-06-29
  • ASP.NET Core怎么处理404错误
    这篇文章主要介绍“ASP.NET Core怎么处理404错误”,在日常操作中,相信很多人在ASP.NET Core怎么处理404错误问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET Core怎么处...
    99+
    2023-06-30
  • 理解ASP.NET Core 错误处理机制(Handle Errors)
    目录使用中间件进行错误处理开发人员异常页IDeveloperPageExceptionFilter异常处理程序通过lambda提供异常处理程序异常处理程序页无响应正文的Http错误状...
    99+
    2024-04-02
  • ASP.NET Core中怎么使用多环境
    本篇内容介绍了“ASP.NET Core中怎么使用多环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ASP.NET Core 支...
    99+
    2023-06-30
  • ASP.NET Core中的环境怎么配置
    这篇文章主要介绍了ASP.NET Core中的环境怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP.NET Core中的环境怎么配置文章都会有所收获,下面我们一起来看看吧。1.环...
    99+
    2023-06-29
  • ASP.NETCore处理错误环境
    1.前言 ASP.NET Core处理错误环境区分为两种:开发环境和非开发环境。 开发环境:开发人员异常页。非开发环境:异常处理程序页、状态代码页。 在Startup.Configu...
    99+
    2024-04-02
  • 如何在 Golang 并发环境中处理错误?
    在 go 并发环境中处理错误的有效方法包括:异常处理(panic/recover): 适用于处理意外错误,通过 panic 引发异常,再用 recover 捕获。错误通道: 用来将并发 ...
    99+
    2024-05-14
    golang 错误处理
  • ASP.NET Core中怎么利用 Razor处理Ajax请求
    这篇文章将为大家详细讲解有关ASP.NET Core中怎么利用 Razor处理Ajax请求,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。RazorRazor Pages是ASP.NET Co...
    99+
    2023-06-19
  • 在Oracle11g RAC环境下如何处理ORA-00845错误
    这篇文章主要为大家展示了“在Oracle11g RAC环境下如何处理ORA-00845错误”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Oracle11g R...
    99+
    2024-04-02
  • pycharm环境配置错误怎么改正
    解决pycharm环境配置错误的步骤:检查python解释器路径是否正确配置。安装必要的python库。检查环境变量中是否包含python解释器和库路径。重新加载项目以应用更改。更新py...
    99+
    2024-04-24
    linux python pycharm
  • ASP Core 中的异常处理:优雅地处理错误
    异常处理是在 ASP Core 中构建健壮应用程序的关键方面。本文将指导您了解 ASP Core 中异常处理的原则,并提供演示代码来展示如何优雅地处理错误,以增强用户体验和应用程序稳定性。 引言 在 ASP Core 应用程序中,处理未...
    99+
    2024-03-07
    ASP Core、异常处理、错误处理、中间件
  • asp.net空间的环境怎么配置
    ASP.NET空间的环境配置步骤如下:1.选择合适的Web服务器,如IIS或Apache。2.安装.NET Framework,根据...
    99+
    2023-06-05
    asp.net空间 空间
  • ASP.NET Core全局异常处理方法是什么
    这篇“ASP.NET Core全局异常处理方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ASP.NET&...
    99+
    2023-06-29
  • 如何使用ASP.NET Core在分布式环境中存储和管理NumPy数据?
    ASP.NET Core是一个跨平台的开源Web框架,它可以在分布式环境中存储和管理NumPy数据。NumPy是一个用于数值计算的Python库,它提供了高性能的多维数组和矩阵计算功能。在本文中,我们将探讨如何使用ASP.NET Core在...
    99+
    2023-10-02
    numy 存储 分布式
  • 免费asp.net空间环境怎么配置
    1. 首先需要下载安装IIS (Internet Information Services) Web服务器。可以从微软官网下载安装包...
    99+
    2023-06-14
    免费asp.net空间 空间
  • ASP.NET Core怎么配置和管理Web主机
    本篇内容主要讲解“ASP.NET Core怎么配置和管理Web主机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Core怎么配置和管理Web主机”吧!1.前言...
    99+
    2023-06-29
  • ASP.NET Core怎么管理应用程序状态
    这篇文章主要介绍了ASP.NET Core怎么管理应用程序状态的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP.NET Core怎么管理应用程序状态文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-30
  • JavaScript中怎么处理错误
    这篇文章主要为大家展示了“JavaScript中怎么处理错误”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中怎么处理错误”这篇文章吧。Dem...
    99+
    2024-04-02
  • Ubuntu中怎么搭建ASP.NET 5开发环境
    本篇文章给大家分享的是有关Ubuntu中怎么搭建ASP.NET 5开发环境,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。0&times;01 Windows和Ubunt...
    99+
    2023-06-17
  • C++ 函数异常与多线程:并发环境下的错误处理
    c++++ 中函数异常处理对于多线程环境尤为重要,以确保线程安全和数据完整性。通过 try-catch 语句,可以在出现异常时捕获和处理特定类型的异常,以防止程序崩溃或数据损坏。 C+...
    99+
    2024-05-04
    c++ 多线程 异常处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作