WCF REST Compression
J'ai un service REST qui renvoie une grande partie de XML, environ 150k en vaut la peine.
par exemple http://xmlservice.com/services/RestService.svc/GetLargeXML
Donc je veux compresser la réponse du serveur, que GZIP devrait réduire ce chiffre à quelque chose de beaucoup plus petit. Après avoir cherché partout, je ne peux pas pour la vie de me trouver un exemple de la façon d'effectuer la compression pour les services REST. À l'aide!!
NOTE: Mon service est hébergé par un tiers, et je NE peux pas le faire via IIS comme il n'est pas pris en charge par eux.
OriginalL'auteur PhilJ | 2009-09-09
Vous devez vous connecter pour publier un commentaire.
C'est en fait assez facile à faire, au moins avec .NET 4.0 (je n'ai pas fait de test avec 3.5). Ce que je fais est juste laissez-IIS 7, prendre soin d'elle. Il n'est pas nécessaire de créer un filtre de compression.
Tout d'abord, assurez-vous d'avoir installé la Dynamique de la fonction de Compression pour IIS 7. Ensuite, sélectionnez le serveur dans le Gestionnaire des services internet et de l'utilisation de la compression module pour activer la Compression Dynamique. Alternativement, vous pouvez le faire à partir de la ligne de commande:
Ensuite, éditez le fichier suivant. Vous pourriez avoir à faire une copie de celui-ci plutôt que la modification de la config directement (Notepad++ se plaint pour moi), puis remplacer l'original lorsque vous êtes prêt.
Là, vous trouverez une <dynamicTypes> en vertu de la section <httpCompression>. En vertu de l' <dynamicTypes> vous devez ajouter tous les types mime que vous voulez être comprimé lorsque le client envoie un en-tête Accept-Encoding: gzip-tête. Par exemple:
Une fois que vous avez fait tout ce qui, de recycler votre pool d'applications et vous devriez être bon d'aller. Si cela ne fonctionne pas, essayez de redémarrer votre serveur et de s'assurer que la compression dynamique est activée au niveau de l'application ainsi que le niveau du serveur.
Remarque: Selon certains posts que j'ai lu, il y avait un bug où vous avez eu à spécifier le codage des caractères (par exemple, "application/json; charset=utf-8"). Cependant, je n'ai pas de problèmes.
OriginalL'auteur kgriffs