从浅入深了解.NET Core MVC 2.x全面教程【第二章】
二、Logging
1.诊断中间件
- 命名空间:Microsoft.AspNetCore.Diagnostics
- 报告信息并处理异常
2.诊断中间件
- UseDeveloperExceptionPage:开发时使用的异常页面,异常信息
- UseStatusCodePages:返回状态码:400-600
- UserExceptionHandler:指定异常处理器
- UseWelcome:当网站还在建设中
3.ASP.NET Core里的Log系统
- EventSource
- ILogger
- DiagnosticSource
4.ILogger
- 基于Providers
- 内置
- 可扩展使用其他的,或自己构件
5.内置的Log Providers
- Console:控制台
- Debug:VSDebug窗口
- EventSource
- EventLog:写到Windows事件中
- TraceSource:只能应用于完整的.NET Frameword
- Azure App Service
6.Log等级(低级——>高级)
- Trace
- Debug
- Information
- Warning
- Error
- Cirtical
7.添加日志信息
第一个参数是EventID,写一个常量就行;
第二个参数是要记录的日志信息;如果有2个参数就继续往后写就行了;
不建议这么写,写在一起就提出不来了;
8.第三方 Log Provider
- Serilog
- Nlog
- Elmah
9.怎么在ASP.NET Core中使用Serilog?
- 在NuGet中安装【Servilog.AspNetCore】

//如果需要输出到控制台
//输出到文件
- 在【Program.cs】文件中Main方法中进行配置。

- 在【Program.cs】文件中CreateWebHostBuilder方法中进行使用。

三、Filter
1.Filter
- 用于MVC
- 可以在MVC的请求管道里添加逻辑
- 之前、之后
- Cross-cutting concerns:灌穿特性
- 避免代码重复
- 常用场景
- 授权
- 需要Https
2.MVC管道

3.Filter种类
- AuthorizationFilter:鉴权授权
- ResourceFilter:资源过滤器
- ActionFilter:行为方法过滤器
- ExceptionFilter:异常过滤器
- ResultFilter:结果过滤器
4.实现Filter
- IFilterMetadata
- IAtuorizationFilter,IAsyncAuthorizationFilter
- IResourceFilter
- IActionFilter
- IExceptionFilter
- IRestleFilter
5.应用Filter
- Action
- Controller
- 全局

四、缓存
1.缓存的优点?
- 提高网站的访问速度
- 适用于不易改变的数据
2.缓存的缺点?
- 仔细规划
- 奇怪的副作用
3.缓存的地点?
- 服务器
- 缓存服务器
- 客户端
4.In-Memory缓存
- 内存缓存
- IMemoryCache
- 适用于Sticky Seesion(使用单机服务)
- 适用于任何类型的对象
5.MemoryCacheEntryOptions
- Absolute expiration time:绝对过期时间
- Sliding expiration time:可调的过期时间
- 缓存优先级
- PostEvictionDelegate
6.怎么使用缓存?
- 现在【Sartup.cs】的【ConfigureServices】方法中注册缓存:

- 定义一个常量,用来做Key

- 构造函数依赖注入缓存

- 使用缓存

7.Cache Tag Helper
- @await Component.IncokeAsync("xxx")
- 服务器端
- 使用IMemoryCache
- Sticky Session
8.Cache Tag Helper属性
- Enabled:是否启用
- expires-on:绝对的过期时间
- expires-after:时间长度
- expires-sliding:可调的过期时间
- vary-by-header:请求
- vary-by-query
- vary-by-cookie
- vary-by-user
- vary-by
- priority:优先级设置
9.分布式缓存_1

10.分布式缓存_2
- 无需Sticky Seesion
- 可扩展
- 服务器重启不会缓存
- 性能更好
11.分布式缓存的接口名、方法?
- IDistributedCache
- Get,GetAsync
- Set,SetAsync
- Refresh,RefreshAsync
- Remove,RemoveAsync
12.分布式缓存有哪几种?
- 分布式Memory Cache:只适合开发时应用
- 分布式 Sql Server Cache
- 分布式 Redis Cache:实际中使用这个最多
13.怎么使用Readis分布式缓存?
- 安装Redis(使用Docker安装)


连接、运行Redis
- 在VS项目中安装Redis

- 在【Startup.cs】的【ConfigureService】方法中进行注入。

- 在Controller中构造函数依赖注入

- 使用分布式缓存

14.Response缓存(响应缓存、客户端缓存)
- 基于Header
- 客户端缓存
- 使用ResponseCache这个Attribute
15.Reponse缓存参数?
- Location:设置缓存在哪
- Duration:设置缓存时间的长短
- NoStore:不应该设为缓存
- VaryByHeader:设置通过检查哪个Header的值决定缓存
16.如何使用Reponse缓存?
- 在【Startup.cs】注册Reponse缓存

- 在控制器中写代码;

也可以使用之前注册的
17.压缩
- 压缩传输的数据:1k以上的数据,如CSS、JS等可以进行压缩;
如何使用呢?
(1)在【Program.cs】中【ConfigureServices】方法中注册服务
(2)在【Program.cs】中【Configure】使用服务
没介绍完,看文档...
五、VSTS(后改名:Azure DevOps)
1.Azure DevOps
- Saas
- 完整的DevOps的解决方案
- 与技术无关
- 基于Azure
- 集成开发团队的环境
2.Azure DevOps组件
- 源码控制
- 计划
- CI
- 发布管理
- 测试
- ...
3.CI-Continuouts Integeration(持续集成)
4.Azure Devops -CI
- Build连接到测试,工作项...
- 宿主代理
- 针对报告
- 支持多种语言凭他
从浅入深了解.NET Core MVC 2.x全面教程【第二章】的更多相关文章
- 浅入深出之Java集合框架(上)
Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...
- 浅入深出之Java集合框架(下)
Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...
- 浅入深出Vue:环境搭建
浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...
- 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置
浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...
- 浅入深出Vue:工具准备之WebStorm安装配置
浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...
- 浅入深出Vue系列
浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...
- 浅入深出Vue:前言
浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...
- 『浅入深出』MySQL 中事务的实现
在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇文章中,我们将对事务的实现进行分析,尝 ...
- 浅入深出Vue:第一个页面
今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考 ...
随机推荐
- 2022-09-09:给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。 示例 1: 输入: n = 5 输出: 2 解释: 5 = 2 + 3,共有两组连续整数([5],[2,
2022-09-09:给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 . 示例 1: 输入: n = 5 输出: 2 解释: 5 = 2 + 3,共有两组连续整数([5],[2,3 ...
- 2020-11-26:go中,map的创建流程是什么?
福哥答案2020-11-26: [答案来自此链接:](https://www.bilibili.com/video/BV1Nr4y1w7aa?p=10)源码位于runtime/map.go文件中的ma ...
- IBM小型机 - 检测码:B150B10C,设备卡住不运行
检测码:B150B10C 问题 开机后,出现检测码:B150B10C,然后就卡在这里不动,无法进行下一步: 这里的错误码表示--机器的内存控制模块被deconfig(取消配置): 解决方法 登录cel ...
- win10双系统Ubuntu的安装之旅(安装+美化+问题解决方案)
一.前言 最近想用一下Ubuntu,于是乎开始了win10安装Ubuntu的旅程,安装的过程中是看到了很多前人已经写好的非常详细的教程,那这里我就不再重复造轮子啦,直接放上链接咯- 看看我的成果图- ...
- 连接内网 SSH 新姿势,告别慢速度及防火墙限制
近些年,因为某些原因,我们常常在家远程研发业务,当某些程序或业务代码在公司电脑上时,就需要访问公司电脑远程操作, SSH 登录 Linux 是一种非常常见的方式,但是在一些情况下,SSH 无法直接连接 ...
- python 学习之-----正则表达式
mport re'''# re 模块regex 正则表达式,正则表达式应用范围:1爬虫:2自动化运维--开发自动化:# 什么是正则表达式:一套规则: 匹配字符串的规则# 能做什么 1 检测一个输入的字 ...
- vs2022的一些调试技巧——远程调试&线程检查&性能检查
visual studio一直都是.net/c#开发人员最受欢迎的编译器,除了强大的代码提示和项目模板,还拥有大量的调试工具,这一期我们介绍下code freeze阶段的一些调试技巧.包括测试环境/生 ...
- [MAUI]弧形进度条与弧形滑块的交互实现
@ 目录 弧形基类 定义 绘制弧 弧形进度条(ProgressBar) 添加动画 宽度补偿 文本 弧形滑块(Slider) 创建控制柄 拖动事件处理 项目地址 进度条(ProgressBar)用于展示 ...
- 云上使用 Stable Diffusion ,模型数据如何共享和存储
随着人工智能技术的爆发,内容生成式人工智能(AIGC)成为了当下热门领域.除了 ChatGPT 之外,文本生成图像技术更令人惊艳. Stable Diffusion,是一款开源的深度学习模型.与 Mi ...
- 8. 自定义映射resultMap
在 Mybatis 中,resultType 和 resultMap 都用于定义查询结果的映射关系.它们的使用场景如下: resultType resultType 用于指定返回结果的数据类型,通 ...