Comment faire pour activer la compression IIS pour les services WCF?

J'utilise actuellement une coutume gzip codeur pour mon service WCF. Je veux le remplacer par le haut-IIS 7 compression si c'est possible. Je ne peux pas trouver d'info en ligne sur la façon de que.

Est-il possible de l'activer IIS 7 de compression pour les services WCF?
Savez-vous si cela sera pris en charge hors de la boîte .Net 4?

Modifier le 15 juin: je suis toujours à la recherche d'un moyen de remplacer notre coutume gzip codeur avec une approche la plus répandue de sorte que si vous savez comment le faire avec vous .Net 4 et IIS 7, s'il vous plaît répondre à cette question.

Grâce


Encadré : Ma tentative de le faire manuellement

Puisque je ne peux pas trouver comment le faire: il suffit de tourner quelques boutons, j'ai décidé de l'essayer et de l'activer manuellement.

Pour l'instant j'ai:

  • Installé et activé le IIS 7 de la Compression Dynamique Module
  • Changé la section de la applicationHost.fichier de configuration pour activer la compression pour mimeType="application/soap+xml" et mimeType="application/xop+xml".

J'ai utilisé un HTTP sniffer pour renifler le trafic envoyé à partir de mon application (Windows Forms). Je vois que les demandes n'ont pas le Accept-Encoding:gzip,deflate en-tête http.

Donc Je

  • Ajoutée manuellement à tous les appels sortants à l'aide de la OperationContextScope classe et de son OutgoingMessageProperties. (Je vais poster les détails plus tard si je trouve la solution).

Avec http sniffer, je peux voir que le client l'en-tête a maintenant le bon en-tête:

POST /### path to my service ####/MyService.svc HTTP/1.1
MIME-Version: 1.0
Content-Type: multipart/related; type="application/xop+xml";
    start="<http://tempuri.org/0>";
    boundary="uuid:####### some uuid #############";
    start-info="application/soap+xml"
Accept-Encoding: gzip,deflate
Host: ####### my server name #############
Content-Length: 1753
Expect: 100-continue

Mais la réponse du serveur n'est toujours pas compressé.

Pourquoi la réponse du serveur non compressé? Ai-je utilisé le bon type mime? Une fois que je reçois le serveur renvoie un comprimé de réponse, le client aura automatiquement le décompresser ou auront à écrire de code côté client pour décompresser?


Merci pour votre aide

Ma question semble être un doublon de stackoverflow.com/questions/1741768/.... Cette question s'applique à IIS 6, mais je pense que la solution fonctionne ici aussi. Si c'est le cas, je vais fermer cette question comme un doublon.

OriginalL'auteur Sylvain | 2009-11-14