You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core Web API:Microsoft.AspNetCore.ResponseCompression弃用后替代包咨询

替代方案:使用ASP.NET Core内置响应压缩中间件

从.NET Core 3.0开始,响应压缩功能已经原生集成到ASP.NET Core框架中,完全替代了已弃用的Microsoft.AspNetCore.ResponseCompression包,无需额外安装第三方依赖,且由官方持续维护,兼容性和性能更有保障。

配置步骤:

  1. 注册响应压缩服务
    在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"
    });
});
  1. 启用响应压缩中间件
    在请求管道中添加中间件(注意顺序,需放在路由中间件之前):
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:22:35