从浅入深了解.NET Core MVC 2.x全面教程【第二章】
二、Logging1.诊断中间件
[*]命名空间: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连接到测试,工作项...
[*]宿主代理
[*]针对报告
[*]支持多种语言凭他
上一章节:https://www.cnblogs.com/kimiliucn/p/17611047.html
原文链接:https://www.cnblogs.com/kimiliucn/p/17616708.html
来源:https://www.cnblogs.com/kimiliucn/archive/2023/08/09/17616708.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]