从浅入深了解.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项目(可以参考 ...
随机推荐
- 2020-09-07:Docker的四种网络类型?
福哥答案2020-09-07: 敲docker network ps命令,显示三种模式.1.bridge模式:使用–net =bridge指定,默认设置.桥接式网络模式(默认).容器的默认网络模式,d ...
- 2021-04-25:给定一个数组arr,和一个正数M,返回在arr的子数组在长度不超过M的情况下,求最大的累加和。
福大大 答案2021-04-25: 前缀和+左大右小的双端队列.时间太晚了,所以写得简单. 代码用golang编写.代码如下: package main import ( "containe ...
- Netty自定义协议要素
魔数:用来判断是否是无效数据包 协议版本号:可以支持协议的升级 序列化算法:消息正文使用哪种序列化方式,可以扩展.例如:protobuf,json,hessian等 指令类型:跟业务相关,例如:登录, ...
- 使用 @GrpcClient 实现客户端
转载请注明出处: @GrpcClient 注解的作用是将 gRPC 客户端注入到 Spring 容器中,方便在应用程序中使用 gRPC 客户端调用 gRPC 服务提供的函数.使用 @GrpcClien ...
- GitLib详细使用手册(windows系统)
Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. 对gitlab的常见的使用有建立仓库.提交代码.更新代码.回滚代码.显示/修改日志.拉取分支.解决冲突.设置比 ...
- k8s资源对象(二)
Configmap和Secret资源介绍 secret和configmap资源都是通过挂载的方式将对应数据挂载到容器内部环境中去使用,两者的使用没有太多的不同 ,configmap资源通常用于为pod ...
- Java中的三元运算,以后用得到!
前言 Java 中的三元运算,平时也叫做三目运算,大家了解吗?下面就详细介绍一下,以后在项目编程中用得到. 一.Java运算符 在最底层,Java 中的数据是通过使用运算符来操作的.运算符是一种特殊的 ...
- 【Leetcode】 #9 回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 - ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境
1.简介 有些小伙伴或者童鞋们私信留言说自己是在公司局域网办公,或者公司为了安全对网络管控比较严格(尤其是一些大的国企.央企),总之就是一句话无法连到外网去在线下载,宏哥刚看到留言时觉得这问题还留言问 ...
- 【技术积累】Linux中的基础知识【一】
Linux系统是什么 Linux系统是一种开源操作系统,它极具可定制性和灵活性,因此受到了许多人的欢迎.Linux系统以简单,强大和兼容性而著称.它可用于各种设备,从个人计算机到超级计算机,从移动设备 ...