.NET Core Web API:Microsoft.AspNetCore.ResponseCompression弃用后替代包咨询
替代方案:使用ASP.NET Core内置响应压缩中间件
从.NET Core 3.0开始,响应压缩功能已经原生集成到ASP.NET Core框架中,完全替代了已弃用的Microsoft.AspNetCore.ResponseCompression包,无需额外安装第三方依赖,且由官方持续维护,兼容性和性能更有保障。
配置步骤:
- 注册响应压缩服务
在Program.cs中添加服务配置:
builder.Services.AddResponseCompression(options => { options.EnableForHttps = true; // 允许在HTTPS请求下启用压缩 // 指定需要压缩的MIME类型,默认已包含常见类型,可按需扩展 options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "application/json", "text/plain", "text/html", "text/css", "application/javascript" }); });
- 启用响应压缩中间件
在请求管道中添加中间件(注意顺序,需放在路由中间件之前):
app.UseResponseCompression(); app.UseRouting(); // 其他中间件配置(如认证、授权等) app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
扩展:启用Brotli压缩
默认仅启用Gzip压缩,若需要更高效的Brotli算法,可手动添加:
builder.Services.AddResponseCompression(options => { options.Providers.Add<BrotliCompressionProvider>(); options.Providers.Add<GzipCompressionProvider>(); options.EnableForHttps = true; }); // 可选:配置压缩级别(Optimal/ Fastest/ NoCompression) builder.Services.Configure<BrotliCompressionProviderOptions>(options => { options.Level = CompressionLevel.Optimal; }); builder.Services.Configure<GzipCompressionProviderOptions>(options => { options.Level = CompressionLevel.Optimal; });
注意事项
- 该方案适配.NET Core 3.0及以后所有版本(包括.NET 5/6/7/8)
- 压缩会增加服务器CPU负载,建议根据实际业务场景调整压缩级别和目标MIME类型
内容的提问来源于stack exchange,提问作者XamDev
相关产品推荐
相关产品推荐

