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环境,因为返回的信息对于用户来说没有意义。
相关文章:
ASP.NET Core 的错误页面
异常处理 Developer 环境的异常页面 ASP.NET Core App 会可以在开发阶段用UseDeveloperExceptionPage启用 Developer 异常页面: app.UseDeveloperExceptionPage();当遇到Unhandled 异常信息时,可以输出异常信息页面: 异常信息包括…...
Android静态ip设置的坑
Android静态ip设置的坑 Android静态ip设置,对于这个功能,如果没有接触过,会给人感觉是个特别简单的功能,直接调用系统的接口即可,其实这个功能还是有许多坑的,因为谷歌在Android SDK中对相关的API进行非系…...
电源管理(PMIC)TPS63070RNMR、TPS650942A0RSKR、LM5175RHFR器件介绍、应用及特点。
一、TPS63070RNMR,降压升压 开关稳压器 IC 正 可调式 2.5V 1 输出 3.6A(开关) 15-PowerVFQFN 1、概述 TPS63070高输入电压降压-升压转换器是一款高效的低静态电流降压-升压转换器。这些器件适用于输入电压高于或低于输出电压的应用。升压模式…...
k8s(kubernetes)介绍篇
一、Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对…...
gRPC + Spring Boot 编程教程 - piot
在本文中,您将学习如何实现通过 gRPC 通信的 Spring Boot 应用程序。gRPC 是一个现代开源远程过程调用 (RPC) 框架,可以在任何环境中运行。默认情况下,它使用 Google 的 Protocol Buffer 来序列化和反序列化结构化数据。当然,我们…...
新建Spring Boot项目
使用IDEA 来创建: 文件-新建-项目 填写项目元数据 选择依赖项 此处可以先选 web-spring web 关于这些依赖项,更多可参考: IDEA创建Spring boot项目时各依赖的说明(Developer Tools篇)[1] 项目结构介绍 展开项目,此时…...
Python数据分析的第三方库
ython作为一种简单易学、功能强大的编程语言,逐渐成为数据分析领域的首选工具。在Python数据分析中,有许多优秀的第三方库可以帮助我们进行数据处理、可视化和建模。 常用第三方库: NumPy:提供了高性能的多维数组对象和用于数组…...
EF列表分页查询(单表、多表),排除参数为空的条件
在日常使用EF框架查询数据库时,有时传入的参数为空,那么我们应该把该条件排除,不应列入组装的sql中,本篇文件以分页查询为例介绍EF框架的单表、多表的多条件查询,参数为空时排除条件。 首先我们要有派生自DBContext类的数据上下文…...
VisualStudio配置pybind11-Python调用C++方法
个人测试下来Debug生成的dll改pyd,py中import会报错gilstate->autoInterpreterState 如果遇到同样问题使用Release吧 目录 1.安装pybind11 1.pip: 2.github: 2.配置VS工程 2.在VC目录中的包含目录添加: 3.在VC目录中的库目录…...
ZZULIOJ 1164: 字符串加密,Java
ZZULIOJ 1164: 字符串加密,Java 题目描述 输入一串字符(长度不超过100)和一个正整数k,将其中的英文字母加密并输出加密后的字符串,非英文字母不变。加密思想:将每个字母c加一个序数k,即用它后…...
联合体(共用体)的简单介绍
目录 概念: 联合的声明: 类比结构体: 联合体的大小: 联合的⼤⼩⾄少是最⼤成员的⼤⼩ 联合体的空间是共用的 联合体内部成员的赋值: 当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬…...
Ansible学习笔记8
group模块: 创建一个group组: [rootlocalhost ~]# ansible group1 -m group -a "nameaaa gid5000" 192.168.17.105 | CHANGED > {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}…...
五子棋游戏禁手算法的改进
五子棋游戏禁手算法的改进 五子棋最新的禁手规则: 1.黑棋禁手判负、白棋无禁手。黑棋禁手有“三三”(包括“四三三”)、“四四”(包括“四四三”)和“长连”。黑棋只能以“四三”取胜。 2.黑方…...
基于 Debian 12 的 Devuan GNU+Linux 5 为软件自由爱好者而生
导读Devuan 开发人员宣布发布 Devuan GNULinux 5.0 “代达罗斯 “发行版,它是 Debian GNU/Linux 操作系统的 100% 衍生版本,不包含 systemd 和相关组件。 Devuan GNULinux 5 基于最新的 Debian GNU/Linux 12 “书虫 “操作系统系列,采用长期支…...
算法系列-力扣234-回文链表判定
回文链表判定 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 方法一:栈反转对比法 解题思路:找到中间节点后用栈辅助反转对比 解题方法࿱…...
算法通关村——海量数据场景下的热门算法题的处理方法
1. 从40个亿中产生一个不存在的整数 题目要求:给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。 ● 进阶:如果只有10MB的内存可用&a…...
【C++从0到王者】第二十五站:多继承的虚表
文章目录 前言一、多继承的虚函数表二、菱形继承与菱形虚拟继承的虚函数表1.菱形继承2.菱形虚拟继承的虚函数表 三、抽象类1.抽象类的概念2.接口继承与实现继承 总结 前言 其实关于单继承的虚函数表我们在上一篇文章中已经说过了,就是派生类中的虚表相当于拷贝了一…...
老程序员教你如何笑对问题,轻松培养逻辑思考和解决问题的能力
原文链接 老程序员教你如何笑对问题,轻松培养逻辑思考和解决问题的能力 故事发生在一个阳光明媚的午后,我们的主人公,老李,一位拥有十年工作经验的 Python 老程序员,正悠哉地在喝着咖啡。 这时&#x…...
Omni Recover for Mac(专业的iPhone数据恢复软件)
Omni Recover for Mac是一款专业的Mac数据恢复软件,能够帮助用户快速找回被误删除、格式化、病毒攻击等原因造成的文件和数据,包括图片、视频、音频、文档、邮件、应用程序等。同时,Omni Recover for Mac还具有数据备份和清理功能,…...
视频垂直镜像播放,为您的影片带来新鲜感
大家好!在制作视频时,我们常常希望能够给观众带来一些新鲜感和独特的视觉效果。而垂直镜像播放是一个能够让您的影片与众不同的技巧。然而,传统的视频剪辑软件往往无法直接实现视频的垂直镜像播放,给我们带来了一些困扰。现在&…...
避坑指南:OpenBMI运动想象实验中的‘跨被试’与‘不跨被试’到底怎么选?
避坑指南:OpenBMI运动想象实验中的‘跨被试’与‘不跨被试’到底怎么选? 当你第一次接触OpenBMI工具箱进行运动想象(Motor Imagery, MI)实验时,最令人困惑的决策之一就是如何选择数据划分策略。是采用**跨被试…...
Win10/Win11磁盘合并全攻略:第三方工具 vs 系统自带功能实测对比
Win10/Win11磁盘合并全攻略:第三方工具 vs 系统自带功能深度解析 当你的电脑硬盘空间告急时,合并磁盘分区可能是最直接的解决方案之一。不同于简单的删除文件或清理垃圾,磁盘合并能从根本上重组存储空间,让系统运行更加流畅。本文…...
从稀疏点云到动态环境:八叉树地图在视觉SLAM中的核心构建与应用
1. 八叉树地图:视觉SLAM的"三维记事本" 想象一下你第一次走进一个陌生商场时的场景:眼睛快速扫描扶梯位置,大脑自动标记洗手间标识,同时避开行走的人群——这个过程本质上就是人类版的SLAM(同步定位与地图构…...
千问3.5-2B集成IDEA开发环境:Java大模型应用快速构建指南
千问3.5-2B集成IDEA开发环境:Java大模型应用快速构建指南 1. 为什么要在IDEA中集成大模型? 作为Java开发者,我们经常需要在项目中处理各种文本处理任务。传统方式要么需要调用外部API(有网络延迟和费用问题)…...
闪豆视频下载器 v20260329-B站抖音爱优腾多平台批量下载,画质自选速度快
一款面向电脑端打造的多平台视频批量下载工具,支持 B 站、A 站、抖音、爱奇艺、优酷、腾讯视频等主流内容平台,覆盖范围较广,适合经常需要从不同平台保存视频内容的用户使用。 软件操作流程简单直接,解析和下载过程清晰易懂&#…...
别再用asyncio硬扛高并发了!无GIL环境下Python原生多线程性能翻倍的6个核心调优参数
第一章:Python无锁GIL环境下的并发模型演进全景Python长期以来受全局解释器锁(GIL)制约,导致多线程无法真正并行执行CPU密集型任务。近年来,随着CPython 3.12正式引入实验性“无GIL构建选项”(--without-py…...
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI
手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI 还在为本地跑不动大模型而烦恼吗?今天我要分享一个好消息:即使你的电脑配置不高,也能轻松部署一个实用的AI文本生成模型。LFM2.5-1.2B-Thinking-GGUF就…...
Pixel Couplet Gen实战案例:某AI开发者大会现场扫码生成像素春联纪念品
Pixel Couplet Gen实战案例:某AI开发者大会现场扫码生成像素春联纪念品 1. 项目背景与创意来源 1.1 传统与创新的碰撞 在2024年某AI开发者大会现场,我们推出了一款名为"Pixel Couplet Gen"的互动装置。这款产品将中国传统春节文化与现代AI技…...
你的文件真的‘上传’了吗?聊聊阿里云盘‘秒传’背后的隐私与安全考量
你的文件真的“上传”了吗?揭秘秒传技术背后的隐私博弈 第一次在阿里云盘体验“秒传”功能时,那种近乎魔法的速度确实令人惊叹——几个GB的文件眨眼间就完成了“上传”。但惊喜之余,一个更根本的问题浮现出来:我的文件真的被上传了…...
提升物业服务满意度的物业管理小程序
一、首页核心服务入口基础功能模块:物业缴费、我的房产、通知公告、投诉建议、维修申报、小区活动、家政服务、优惠好物,覆盖业主日常高频需求信息与活动展示:顶部搜索栏:支持关键词检索,快速定位所需服务物业公告&…...
