从浅入深了解.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项目(可以参考 ...
随机推荐
- ssh终端工具推荐-WindTerm
什么是WindTerm 官方github https://github.com/kingToolbox/WindTerm A Quicker and better SSH/Telnet/Serial/ ...
- 数据挖掘实践(金融风控):金融风控之贷款违约预测挑战赛(上篇)[xgboots/lightgbm/Catboost等模型]--模型融合:stacking、blending
数据挖掘实践(金融风控):金融风控之贷款违约预测挑战赛(上篇)[xgboots/lightgbm/Catboost等模型]--模型融合:stacking.blending 1.赛题简介 赛题以金融风控 ...
- Error: Failed to download resource "python"
最近在mac 部署flutter开发环境遇到一些IOS开发工具安装的问题,为解决问题到处寻找答案,浪费了大量时间,故在此记录一下避免再次入坑 执行flutter doctor检测环境 开始安装缺失工具 ...
- web自动化07-元素等待
元素等待 1.什么是元素等待? 在定位页面元素时如果没找到,会在指定时间内一直等待的过程 2.为什么需要元素等待 网络速度慢 电脑配置低 服务器处理请求慢 3.三种元素等 ...
- Docker 的安装及常用命令
CentOS Docker 安装 参看链接 Windows安装 Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/doc ...
- ChatGPT之问艺道:如何借助神级算法Prompt,让你轻松get到更高质量答案?
摘要:本文由葡萄城技术团队编写,文章的内容借鉴于Ibrahim John的<The Art of Asking ChatGPT>(向ChatGPT提问的艺术). 前言 当今,ChatGPT ...
- TransformersandNLPforVideoUnderstanding
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 <Transformers and NLP for Video Understanding> 1 ...
- Java String、StringBuilder、StringBuffer类
1.String类 创建字符串对象后,字符串对象不可以发生改变,并且这个字符串对象存储在方法区中的字符串常量池中. 即使想改变字符串对象,那么也只是在字符串常量池中重新创建了一个字符串对象而已. 2. ...
- Python运维开发之路《数据类型》
一. python数据类型 python的五大基本数据类型,数字.字符串.列表.元组.字典;其他数据类型,类型type.Null.文件.集合.函数/方法.类.模块. 1.数字 1 ①整型 2 十进制转 ...
- 基于GPT搭建私有知识库聊天机器人(一)实现原理
1.成品演示 支持微信聊天 支持网页聊天 支持微信语音对话 支持私有知识文件训练,并针对文件提问 步骤1:准备本地文件a.txt,支持pdf.txt.markdown.ppt等 步骤2:上传a.txt ...