2016-11-23 5 views
3

Ich habe gerade alle meine .net-Kern-Pakete auf asp.net Core 1.1 aktualisiert. Zur gleichen Zeit dachte ich, ich würde die neu veröffentlichte Response-Komprimierungs-Middleware implementieren. Wenn ich jedoch in den Browser-Entwicklungstools (Netzwerkverkehr) nachschaue, kann ich sehen, dass die Antwort in der Größe nicht unterschiedlich ist, ob ich Kompression verwende oder nicht. Außerdem gibt es keinen Antwortheader vom Typ "Content-Encoding", der anzeigt, dass eine Komprimierung aufgetreten ist..Net-Core 1.1 UseResponseCompression wird nicht komprimiert

Gibt es noch etwas, was ich hier tun sollte, damit dies funktioniert?

Mein Code ist wie folgt:

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

     services.AddResponseCompression(); 

Und:

public void Configure(IApplicationBuilder appBuilder) 
    { 
     appBuilder.UseResponseCompression(); 
     appBuilder.UseMvc(); 

Antwort

2

Ich denke, Sie den Komprimierungsanbieter angeben müssen. Versuchen Sie folgendes:

 services.AddResponseCompression(options => 
     { 
      options.Providers.Add<GzipCompressionProvider>(); 
     }); 

Als ich tun, dass ich eine Antwort sehen, die zuvor 89kb zu 2kb gehen wurde und den Inhaltstyp und die Codierung werden mit den erwarteten Werten gesetzt.

+0

Ich werde es versuchen. – Slicc

+2

Bitte beachten Sie auch, dass HTTPS nicht funktioniert, Sie müssen auch hinzufügen 'options.EnableForHttps = true;' –

+0

Danke Jason Leung, das hat es für mich funktioniert :) –

Verwandte Themen