Ich habe einen .NET 3.5 Webservice auf IIS7.5 gehostet.
Ich habe eine Client-Anwendung, die sich mit diesem Webservice verbindet.
Ich habe (in der Client-Anwendung) die httpWebRequest.Create-Methode geändert, um automatischDecompression für GZip hinzuzufügen, aber es funktioniert nicht
%Vor%Auf diese Weise wird die Anfrage korrekt gesendet, die Antwort ist in gzip codiert (ich sehe es von Fiddler), aber eine Ausnahme tritt auf:
%Vor%(Ich denke, der Client entschlüsselt die Antwort nicht)
Wenn ich diese Zeile lösche, wie in der MSDN-Dokumentation
%Vor%Die Antwort ist nicht GZip-codiert (und in der Anfrage gibt es keinen ACCEPT-ENCODING-Header)
Ich habe dies getan, um DataTable-Objekte mit WCF mit DataContract zu übertragen. Sie müssen den DataContract wie folgt anlegen:
%Vor%Dann habe ich einen Binär-Konverter erstellt, der automatisch jedes Objekt in ein Byte-Array konvertiert, das ich dann mit GZip komprimieren kann.
%Vor%Dump dies in Ihrem Projekt und rufen Sie wie folgt in Ihrem Service zu komprimieren:
%Vor%Dann nennen Sie es auf Ihrer Client-Seite, um es wieder in ein Objekt umzuwandeln:
%Vor%Ein möglicher Weg wäre, protobuf zu verwenden, um eine Komprimierung zu erreichen mit dem WCF-Dienst, wenn Sie Client und Server steuern.
Tags und Links wcf c# web-services gzip