- ASP.NET Core与RESTful API 开发实战
- 杨万青
- 642字
- 2020-08-27 11:23:25
2.3.3 ASP.NET Core 2.2新增特性
微软于2018年12月发布了ASP.NET Core 2.2,该版本的新特性主要包括以下方面。
(1)IIS进程内托管
在ASP.NET Core 2.2中,ASP.NET Core Module(它是一个IIS原生模块)能够在IIS工作进程(w3wp.exe)与IIS HTTP服务器之间处理请求,如图2-9所示。此外,它还可以对应用程序进行初始化、加载CoreCLR,并处理IIS原生请求的生命周期。
图2-9 IIS进程内托管
(2)HTTP/2支持
ASP.NET Core 2.2添加了对HTTP/2的支持。HTTP/2是HTTP协议的主要修订版本,主要功能包括支持标头压缩,以及请求和响应的多路复用等。当在Window Server 2016/Windows10或更高版本的操作系统中部署ASP.NET Core 2.2应用程序时,Kestrel及IIS服务器将支持HTTP/2。HTTP/2连接必须使用应用程序层协议协商(ALPN)和TLS 1.2或更高版本。
(3)OpenAPI分析器和约定
OpenAPI(也称Swagger)是一个与语言无关的规范,用于描述RESTful API。OpenAPI生态系统中有一些工具,可用于发现、测试和生成使用该规范的客户端代码。ASP.NET Core 2.2改进了创建OpenAPI文档的工具和运行时的体验。
(4)Kestrel配置
在早期版本的ASP.NET Core中,Kestrel通过调用UseKestrel方法来配置。在ASP.NET Core 2.2中,IWebHostBuilder接口新增了ConfigureKestrel方法来配置Kestrel服务器。
(5)运行状况检查
通过新的运行状况检查服务可以更轻松地在需要运行状况检查的环境(如Kubernetes)中使用ASP.NET Core。运行状况检查包括中间件、IHealthCheck接口及其相关服务,它主要用来报告应用程序中组件的运行状态。
(6)SignalR Java客户端
ASP.NET Core 2.2引入了适用于SignalR的Java客户端,此客户端支持通过Java代码连接到ASP.NET Core SignalR服务器(包括Android应用)。
(7)CORS改进
在早期版本的ASP.NET Core中,CORS中间件允许发送Accept、Accept-Language、Content-Language和Origin消息头(不考虑在CorsPolicy.Headers中配置的值)。在ASP.NET Core 2.2中,仅当在Access-Control-Request-Headers中发送的消息头与WithHeaders中声明的标头完全匹配时,才能进行CORS中间件策略匹配。