.Net核心1.1 UseResponseCompression没有压缩

Sli*_*icc 5 c# asp.net-core-mvc .net-core

我刚刚将所有.net核心软件包升级到asp.net核心1.1.与此同时,我认为我将实现新发布的响应压缩中间件.但是,当我查看浏览器开发工具(网络流量)时,无论是否使用压缩,我都可以看到响应大小没有差别.此外,没有"Content-Encoding"类型的响应头,表明发生了压缩.

还有什么我应该在这里做这个工作吗?

我的代码如下:

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(options => {
            options.CacheProfiles.Add("Never",
                new CacheProfile()
                {
                    Location = ResponseCacheLocation.None,
                    NoStore = true,
                    Duration = 0
                });
        });

        services.AddResponseCompression();
Run Code Online (Sandbox Code Playgroud)

和:

    public void Configure(IApplicationBuilder appBuilder)
    {
        appBuilder.UseResponseCompression();
        appBuilder.UseMvc();
Run Code Online (Sandbox Code Playgroud)

Jef*_*eff 3

我认为您需要指定压缩提供者。尝试这个:

        services.AddResponseCompression(options =>
        {
            options.Providers.Add<GzipCompressionProvider>();
        });
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我看到以前的 89kb 响应变成了 2kb,并且内容类型和编码被设置为预期值。

  • 另请注意,HTTPS 不起作用,您还必须添加 `options.EnableForHttps = true;` (7认同)