ASP.NET Core 的错误页面

异常处理

Developer 环境的异常页面

ASP.NET Core App 会可以在开发阶段用UseDeveloperExceptionPage启用 Developer 异常页面:

app.UseDeveloperExceptionPage();

当遇到Unhandled 异常信息时,可以输出异常信息页面:
异常信息包括:

  • Stack trace
  • Query string parameters, if any
  • Cookies, if any
  • Headers

Production 环境的异常页面

在测试和上线阶段,可以用UseExceptionHandler 捕获异常:

var app = builder.Build();
if (!app.Environment.IsDevelopment()) //仅在开发环境输出这些详细信息
{app.UseExceptionHandler("/Error");app.UseHsts();
}

UseExceptionHandler 会捕获和记录异常信息,并重新执行客户端的request,所以要注意重新执行request的重入逻辑。

记录异常

可以使用 IExceptionHandlerPathFeature 获取异常的详细信息,然后写入log:

    public void OnGet(){RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;var exceptionHandlerPathFeature =HttpContext.Features.Get<IExceptionHandlerPathFeature>();if (exceptionHandlerPathFeature?.Error is FileNotFoundException){ExceptionMessage = "The file was not found.";}if (exceptionHandlerPathFeature?.Path == "/"){ExceptionMessage ??= string.Empty;ExceptionMessage += " Page: Home.";}}

返回错误代码 UseStatusCodePages

当找不到endpoint时,会返回404。可以返回400-599的code。

var app = builder.Build();if (!app.Environment.IsDevelopment())
{app.UseExceptionHandler("/Error");app.UseHsts();
}
app.UseStatusCodePages();

UseStatusCodePages 一般不用于Production环境,因为返回的信息对于用户来说没有意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法第一天——数组理论基础

数组 数组是存放连续内存空间上的相同类型数据的集合&#xff0c; 数组的下标都是从0开始&#xff0c; 数组内存空间的地址是连续的。 数组元素不能删除&#xff0c;只能修改。即数组数组一旦分配了内存空间就不能修改空间大小。 但是在java中&#xff0c;java的内存的空间地址…

Django学习笔记-实现联机对战

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 CONTENTS 1. 统一长度单位2. 增加联机对战模式3. 配置Django Channels 1. 统一长度单位 多人模式中每个玩家所看到的地图相对来说应该是一样的&#xff0c;因此需要固定地…

30 - 个人博客项目-01-配置环境

(1). 安装第三方库 pip install flask2.3.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip3 install jinja23.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install flask-script2.0.5 -i h…

《Kubernets证书篇:kubernetes1.24.17证书修改时间限制》

一、背景 Kubernetes 默认的证书有效期只有1年,因此需要每年手动更新一次节点上面的证书,特别麻烦而且更新过程中可能会出现问题,因此我们要对 Kubernetes 的 SSL 证书有效期进行修改,这里将证书的时间限制修改为100年。 环境信息如下: 操作系统内核版本K8S版本Ubuntu 20.…

含纽扣电池的产品出口澳洲需要做哪些认证?认证标准是什么?

澳大利亚含纽扣电池产品新规 01纽扣电池安全问题<<<< 在澳大利亚&#xff0c;已有儿童因为误食纽扣电池而导致死亡&#xff0c;且每月至少有一名儿童因吞咽或插入纽扣/硬币电池而严重受伤&#xff0c;导致其中一些儿童永久性损伤&#xff0c;而全世界数以百万计的…

5分钟快速搭建!这款颜值爆表的数据可视化工具,你值得拥有!

最好的数据可视化工具是什么&#xff1f; 没有最好&#xff0c;只有最适合的。不过&#xff0c;想要找一个优秀的数据可视化工具&#xff0c;可以从下面几点进行评估&#xff1a; &#xff08;1&#xff09;易用性&#xff1a; 直观的界面可以帮助新手快速上手&#xff0c;并…

kafka--技术文档--架构体系

架构体系 Kafka的架构体系包括以下几个部分&#xff1a; Producer. 消息生产者&#xff0c;就是向Kafka broker发送消息的客户端。Broker. 一台Kafka服务器就是一个Broker。一个集群由多个Broker组成。一个Broker可以容纳多个Topic。Topic. 可以理解为一个队列&#xff0c;一…

200. 岛屿数量

200. 岛屿数量 class Solution { public:vector<vector<char>> g;int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1};int numIslands(vector<vector<char>>& grid) {g grid;int cnt 0;for (int i 0; i < g.size(); i )for (int j 0; j <…

JVM垃圾回收算法和CMS垃圾收集器

目录 判断一个对象是否死亡&#xff1f; 1、引用计数法 2、可达性分析算法 三色标记 垃圾收集算法 1、分代收集理论 2、垃圾回收算法 标记-清除 标记-复制 标记-整理 CMS&#xff08;Concurrent Mark Sweep&#xff09;收集器 CMS垃圾收集器步骤 CMS垃圾收集器优…

Servlet简介

一、servlet介绍 1、概念 servlet是一个运行在服务器端的小程序&#xff0c;也是一个接口&#xff0c;介绍了Java类被tomcat识别的规则。 2、servlet的创建和使用 &#xff08;1&#xff09;创建一个JavaEE项目 &#xff08;2&#xff09;定义一个类&#xff0c;实现servlet…

为Android做一个ShowModal窗口

大家知道&#xff0c;用Delphi实现一个Form&#xff0c;并用ShowModal显示出来&#xff0c;在Android平台是非阻塞的&#xff0c;即执行了Form.ShowModal&#xff0c;代码会继续往下执行而不是等待&#xff0c;这跟在Windows平台是完全不一样的。如果我们需要类似阻塞的效果&am…

Vue3 ElementPlus el-cascader级联选择器动态加载数据

参考了这位的大佬的写法 element el-cascader动态加载数据 &#xff08;多级联动&#xff0c;落地实现&#xff09;_el-cascader 动态加载_林邵晨的博客-CSDN博客 <el-cascader style"width: 300px" :props"address" v-model"addressValue" …

Redis 主从复制和哨兵模式

一、概念 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的 Redis 服务器。前者称为主节点&#xff08;master/leader&#xff09;&#xff0c;后者称为从节点&#xff08;slave/follower&#xff09;。数据的复制是单向的&#xff0c;只能由主节点…

【Vue2.0源码学习】生命周期篇-初始化阶段(initEvents)

文章目录 1. 前言2. 解析事件3. initEvents函数分析4. 总结 1. 前言 本篇文章介绍生命周期初始化阶段所调用的第二个初始化函数——initEvents。从函数名字上来看&#xff0c;这个初始化函数是初始化实例的事件系统。我们知道&#xff0c;在Vue中&#xff0c;当我们在父组件中…

AUTOSAR开发工具DaVinci Configurator里的Modules

DaVinci Configurator 里面有个Module这个概念。 如你所想&#xff0c;基本上跟AUTOSAR架构里面的Module相对应 从软件的Project菜单中的Basic Editor项可以打开 打开这个菜单后&#xff0c;会看到很多Modules项以及其相关配置项 这个Basic Editor显示出整个ECU配置中的所有…

代码题: 看代码说结果, 事件循环 + async 函数的

1. 基本的 async/await 和事件循环 console.log(1);async function asyncFunc() {console.log(2);await Promise.resolve();console.log(3); }asyncFunc();console.log(4);执行顺序&#xff1a; 打印 1定义异步函数 asyncFunc&#xff0c;但并不执行它。调用 asyncFunc()。 打…

Python中的迭代器与生成器

文章目录 1、迭代器2、生成器3、列表推导式和生成器表达式4、enumerate() 在Python中&#xff0c;迭代器&#xff08;Iterator&#xff09;和生成器&#xff08;Generator&#xff09;是两种用于处理可迭代对象的重要工具。而可迭代对象包括列表&#xff0c;元组&#xff0c;字…

C#里Bitmap转Halocn的HObject

一般情况下&#xff0c;图像的width是4的倍数的话&#xff0c;用以下代码便可将彩色bitmap转出halcon里的HObject public void Bitmap2HObject(Bitmap bmp, out HObject image){try{Rectangle rect new Rectangle(0, 0, bmp.Width, bmp.Height);BitmapData srcBmpData bmp.L…

day-06 多进程服务器端 -- 进程间通信

一.多进程服务器端 &#xff08;一&#xff09;进程概念及应用 利用之前学习到的内容&#xff0c;我们的服务器可以按照顺序处理多个客户端的服务请求。在客户端和服务时间增长的情况下&#xff0c;服务器就不足以满足需求了。 1.两种类型的服务器端 &#xff08;1&#xff…