二、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全面教程【第二章】的更多相关文章

  1. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  2. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  3. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  4. 浅入深出Vue:环境搭建

    浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...

  5. 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置

    浅入深出Vue之工具准备(二):PostMan安装配置 由于家中有事,文章没顾得上.在此说声抱歉,这是工具准备的最后一章. 接下来就是开始环境搭建了~尽情期待 工欲善其事必先利其器,让我们先做好准备工 ...

  6. 浅入深出Vue:工具准备之WebStorm安装配置

    浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...

  7. 浅入深出Vue系列

    浅入深出Vue导航 导航帖,直接点击标题即可. 文中所有涉及到的资源链接均在最下方列举出来了. 前言 基础篇 浅入深出Vue:工具准备之WebStorm搭建及配置 浅入深出Vue之工具准备(二):Po ...

  8. 浅入深出Vue:前言

    浅入深出Vue系列文章 之前大部分是在做后端,后来出于某些原因开始接触Vue.深感前端变化之大,各种工具.框架令人眼花缭乱.不过正是这些变化,让前端开发更灵活. 博主在刚开始时,参考官网的各个步骤以及 ...

  9. 『浅入深出』MySQL 中事务的实现

    在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇文章中,我们将对事务的实现进行分析,尝 ...

  10. 浅入深出Vue:第一个页面

    今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考 ...

随机推荐

  1. 文心一言 VS chatgpt (15)-- 算法导论3.2 4~5题

    四.函数 $\lceil \lg n \rceil !$ 多项式有界吗?函数 $\lceil \lg \lg n \rceil !$ 多项式有界吗? 文心一言: chatgpt: 对于第一个问题,函数 ...

  2. 2022-05-14:语法补全功能,比如“as soon as possible“, 当我们识别到“as soon as“时, 基本即可判定用户需要键入“possible“。 设计一个统计词频的模型,

    2022-05-14:语法补全功能,比如"as soon as possible", 当我们识别到"as soon as"时, 基本即可判定用户需要键入&quo ...

  3. 2021-10-15:单词拆分。给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你

    2021-10-15:单词拆分.给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词.说明:拆分时可以重复使用字典中的单词.你 ...

  4. Selenium - 浏览器操作

    Selenium - 浏览器操作 获取浏览器信息 from selenium import webdriver driver = webdriver.Chrome() driver.get(" ...

  5. vue全家桶进阶之路35:Vue3 传递参数query和params

    在 Vue.js 3.x 中,可以通过路由的 params 和 query 属性来传递参数. 通过 params 传递参数 我们可以在路由跳转时通过 params 传递参数.具体方法如下: // 在组 ...

  6. flex弹性布局模式下文字超出显示省略号

    都知道flex弹性布局非常好用,会随分辨率不同,宽高自适,那怎么来设置在一定范围内的文字超出隐藏,显示省略号呢?其实也不难 看如下就是使用flex布局的 其实如上效果也同样离不开如下三句,只是用法不大 ...

  7. 最全的git操作命令(持续更新)

    当前使用git进行版本管理越来越频繁,但是难免还是有些命令记不全,曾当前闲暇记录一下,免得需要时漫天找寻 目录 一. 配置用户信息 1.git config [配置git 用户信息] 2.git co ...

  8. JS加载机制

    做开发多年后发现自己思维任然只定位在功能的实现:忽略了很多代码最终的实现,加载机制等 那我们接下来就借助几篇博客来理理天天看见的js:理理他究竟是怎么过执行的 一.代码检测 首先浏览器会对所有js 进 ...

  9. 荣登国家级榜单!ShowMeBug创始人李亚飞入选「科创中国·青年创业榜」

    近日,中国科协召开2022"科创中国"年度会议,会上发布了2021"科创中国"系列榜单.其中,ShowMeBug 创始人&CEO李亚飞入选2021年科创 ...

  10. 使用openresty替换线上nginx网关之openresty安装细节

    背景 线上跑了多年的一个网关业务,随着部门的拆分,逐渐有了一个痛点.该网关业务主要处理app端请求,app端发起的请求,采用http协议,post方法,content-type采用applicatio ...