Wie unterstützt man komprimierte HTTP-Anfragen in Asp.Net 4.0 / IIS7?

8

Für eine ASP.NET 4.0 / IIS7-Webanwendung möchte ich komprimierte HTTP -Anfragen unterstützen. Grundsätzlich möchte ich Clients unterstützen, die in den Anforderungsheadern Content-Encoding: gzip hinzufügen und den Text entsprechend komprimieren.

Weiß jemand, wie ich ein solches Verhalten erreichen kann?

Ps: Betreffend, ich habe mehrere Endpunkte REST und SOAP, und es fühlt sich besser an, die Komprimierung auf der HTTP-Ebene zu unterstützen als benutzerdefinierte Kodierer für jeden Endpunkt.

    
Joannes Vermorel 10.12.2010, 16:25
quelle

2 Antworten

5

Für diejenigen, die interessiert sein könnten, ist die Implementierung ziemlich einfach mit einem IHttpModule , das einfach eingehende Anfragen filtert.

%Vor%

Update: Dieser Ansatz löst ein Problem in WCF aus, da WCF auf dem ursprünglichen Content-Length und nicht auf dem nach dem Dekomprimieren erhaltenen Wert basiert.

    
Joannes Vermorel 11.12.2010 09:44
quelle
1

Versuchen Sie Wiktors Antwort auf meine ähnliche Frage hier:

Wie aktiviere ich die GZIP-Komprimierung für POST (Upload) -Anfragen an einen SOAP WebService auf IIS 7?

... aber bitte beachte, dass seine Implementierung in seinem Blog ein paar Bugs / Kompatibilitätsprobleme enthielt, also probiere bitte meine gepatchte Version der HttpCompressionModule Klasse aus, die auf der gleichen Seite gepostet wurde.

    
NickG 24.05.2013 10:03
quelle