Ich habe einen Webdienst, der einen XML-Wert in einem String-Format zurückgibt.IIS-Komprimierung für WebService Rückgabe eines großen Zeichenfolgenwerts
Durch IE9 kann ich sehen, dass einige der Größe für die Web-Service-Anrufe so hoch wie 1 MB gehen.
I aktiviert Komprimierung in IIS 6 durch die Datei Metabase.xml bearbeiten, das Setzen der folgenden:
HcScriptFileExtensions = "asmx"
unter dem
IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
Ich habe auch HTTP-Komprimierung auf der Registerkarte Service für die freigegeben Eigenschaften von Websites im IIS-Manager.
Ich habe auch die HttCompression in den Web-Service-Erweiterungen, Mapping auf die GZIP-DLL auf dem Windows \ System32 \ inetsrv \ -Ordner hinzugefügt.
Wenn ich den Aufruf an den Webdienst mache, wird der zurückgegebene Wert nicht komprimiert (die gleiche Größe wie beim Serviceaufruf zuvor).
Gibt es Tipps, um sicherzustellen, dass IIS den String-Datenwert komprimiert, der von IIS zurückgegeben wird?
Update: Ich folgte auch die Hinweise auf diese Links gilt:
http://rextang.net/blogs/work/archive/2007/09/12/5654.aspx http://blogs.msdn.com/b/rextang/archive/2007/09/13/4880187.aspx
Mit IE9, ich von den Entwicklertools, die Detailansicht des Web-Service-Aufrufs überprüfen, kann ich sehen, dass der Accept-Encoding-Schlüssel einen Wert von gzip/deflate hat.
Der Web-Service-SOAP-XML-Wert (in String) wird immer noch nicht komprimiert. Irgendwelche Bereiche, in denen ich weiter schauen sollte?
Übrigens verwende ich IIS6.
Update: geprüft ich diese Seite: http://blogs.iis.net/webtopics/archive/2009/02/24/troubleshooting-http-compression-in-iis-6-0.aspx
I 1,2,3 richtig Einzelteile erhielten.
Für Punkt 4 habe ich sogar versucht nur asmx als Erweiterung zu setzen, aber ohne Erfolg.
Für Element 5 habe ich keine Komprimierungseinstellung auf einer untergeordneten Ebene.
Für Element 6 führt das Antivirenprogramm keine Überprüfung des Verzeichnisses zur Komprimierung durch.
Für Element 7 übergebe ich keinen Schrägstrich als Parameter auf der ausführenden DLL.
Für Artikel 8 bin ich unsicher, wo/wie Sie dies überprüfen.
Für Artikel 9 habe ich mit Fiddler überprüft und die richtigen Header werden auf die Anfrage Header gesetzt.
Für Element 10 sehe ich keine Einstellungen in meinen Apps, die diese berühren müssten.
Für Artikel 11 ist der Statuscode, den ich erhalte, 200.
Für Element 12 wird auf die App ohne Proxy zugegriffen.
Für Artikel 13 ist die Anfrage ein Webservice.
Obwohl tangential im Zusammenhang, einen Blick auf [Wie IIS-Komprimierung für WCF-Dienste aktivieren] (http://stackoverflow.com/questions/1735088/how-to-enable-iis-compression-for-wcf -Dienstleistungen). –
Und [Gzip-Komprimierung mit WCF auf IIS7] (http://stackoverflow.com/questions/2713203/gzip-compression-with-wcf-hosted-on-iis7) –
Noch eine andere mögliche Lösung [asp.net und wcf Kompression über iis] (http://www.traviswhidden.com/PublicBlog/tabid/358/EntryId/420/asp-net-and-wcf-compression-via-IIS.aspx) – Tung