asp.net core使用中间件美化开发环境异常页面
asp.net core系统自带的异常页面色彩给人感觉模糊、朦胧,晕眩!
原版:

美化版

实现思路:(在系统自带异常中间件“DeveloperExceptionPageMiddleware”执行后,调用自定义的异常中间件“DeveloperExceptionPrettifyMiddleware”,继续向响应流输出美化的css和js)

/// <summary>
/// 开发环境异常页面css美化 中间件
/// </summary>
public class DeveloperExceptionPrettifyMiddleware
{
private readonly RequestDelegate _next; public DeveloperExceptionPrettifyMiddleware(
RequestDelegate next)
{
_next = next;
} public async Task Invoke(HttpContext context)
{
await _next.Invoke(context); if (context.Response.StatusCode == ) // 通过 StatusCode 判断程序报错
{
using (TextWriter output = (TextWriter)new StreamWriter(context.Response.Body,
new UTF8Encoding(false, true), , true))
{
// 美化版 css/js
var chars = @"
<style>
body{ color: inherit}
h1{color:red}
h3{color:inherit}
.titleerror{color:maroon}
body .location{ }
#header li{color:blue}
#header .selected{background:#44525e}
#stackpage .source ol li{background-color:#ffffcc}
#stackpage .source ol.collapsible li span{color:#000}
.rawExceptionStackTrace{background-color:#ffffcc; padding:.5rem}
:focus{outline:none}
.showRawException{color:blue}
</style>
<script>
document.querySelector('.expandCollapseButton').click()
</script>
".ToCharArray(); // 输出到响应流中
await output.WriteAsync(chars, , chars.Length);
await output.FlushAsync();
}
}
}
}
使用中间件(注意顺序)

源码下载
https://github.com/246850/AspNetCore.Prettify/
asp.net core使用中间件美化开发环境异常页面的更多相关文章
- asp.net core mvc 中间件之WebpackDevMiddleware
asp.net core mvc 中间件之WebpackDevMiddleware WebpackDevMiddleware中间件主要用于开发SPA应用,启用Webpack,增强网页开发体验.好吧,你 ...
- 基于ASP.NET core的MVC站点开发笔记 0x01
基于ASP.NET core的MVC站点开发笔记 0x01 我的环境 OS type:mac Software:vscode Dotnet core version:2.0/3.1 dotnet sd ...
- ASP.NET Core:中间件
一.什么是中间件 我们都知道,任何的一个web框架都是把http请求封装成一个管道,每一次的请求都是经过管道的一系列操作,最终才会到达我们写的代码中.而中间件就是用于组成应用程序管道来处理请求和响应的 ...
- 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式,在API中引入超链接特性,使得API的可发现性(discoverable ...
- 如何传递参数给ASP.NET Core的中间件(Middleware)
问题描述 当我们在ASP.NET Core中定义和使用中间件(Middleware)的时候,有什么好的办法可以给中间件传参数吗? 解决方案 在ASP.NET Core项目中添加一个POCO类来传递参数 ...
- asp.net core mvc 中间件之路由
asp.net core mvc 中间件之路由 路由中间件 首先看路由中间件的源码 先用httpContext实例化一个路由上下文,然后把中间件接收到的路由添加到路由上下文的路由集合 然后把路由上下文 ...
- 如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容?
原文:如何在ASP.NET Core自定义中间件中读取Request.Body和Response.Body的内容? 文章名称: 如何在ASP.NET Core自定义中间件读取Request.Body和 ...
- 零基础ASP.NET Core MVC插件式开发
零基础ASP.NET Core MVC插件式开发 一个项目随着业务模块的不断增加,系统会越来越庞大.如果参与开发的人员越多,管理起来也难度也很大.面对这样的情况,首先想到的是模块化插件式开发,根据业务 ...
- 零基础ASP.NET Core WebAPI团队协作开发
零基础ASP.NET Core WebAPI团队协作开发 相信大家对“前后端分离”和“微服务”这两个词应该是耳熟能详了.网上也有很多介绍这方面的文章,写的都很好.我这里提这个是因为接下来我要分享的内容 ...
随机推荐
- Working with the NSOperationQueue Class
Multi-tasking prevents apps from freezing. In most programming languages, achieving this is a bit tr ...
- JAVA常见算法题(二十二)
package com.xiaowu.demo; //利用递归方法求5!. public class Demo22 { public static void main(String[] args) { ...
- win10 virtualenv
一 创建新虚拟环境 virtualenv appiumenv 二 激活 appiumenv\Scripts\activate 注意是正斜杠,
- linux selenium运行chrome
chrome版本要和chromedriver版本匹配才能正常运行.
- 分享三个USB抓包软件---Bus Hound,USBlyzer 和-USBTrace
Bus Hound官方下载地址:http://perisoft.net/bushound/Bus Hound 简易使用手册:bus_hound5.0中文使用说明.pdf (246 K) 下载次数:9 ...
- 2017.3.31 spring mvc教程(三)拦截器
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- HTML5 Canvas 描画渐开线
渐开线(evolent):在平面上,一条动直线(发生线)沿着一个固定的圆(基圆)作滚动的过程中,此直线上任意一点的轨迹,称为此基圆的一条渐开线.如果将一个圆轴固定在一个平面上,轴上缠线,拉紧一个线头, ...
- Linux Ubuntu下Dropbox图标消失
Linux下的Dropbox是支持命令行模式的.,在terminal中输入dropbox后,如下提示: Dropbox command-line interface commands: Note: u ...
- node - 上传文件并且修改名称
html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- quick-cocos2d-x transition使用方法
Functions transition.newEasing(action, easingName, more) 为图像创造效果 transition.execute(target, action, ...