Question

Récemment, je travaille sur une application WCF et a besoin de quelques fonctionnalités pour comprimer le corps du message de savon, de sorte que la taille de la réponse du service devrait être réduit.

Après quelques recherches, j'ai trouvé une mise en œuvre en ligne de http://weblogs.asp.net/cibrax/archive/2006/03/29/WS_2D00_Compression-for-WCF.aspx'> http://weblogs.asp.net/cibrax/archive/2006/03 /29/WS_2D00_Compression-for-WCF.aspx , les auteurs de celui-ci a créé un nouvel élément de liaison « CompressionBindingElement », associée à ses canaux classes liées.

Cette solution de compression fonctionne parfaitement dans mon application WCF, et la taille de la réponse a été réduite de près de 90%, super! Je tout d'abord testé sur liaison HTTP (signifie lier personnalisé à l'aide du transport http) et tout semble bien.

Une fois que je l'ai essayé via une liaison net.tcp (en utilisant le transport tcp contraignant sur mesure), l'application fonctionnait toujours bien. Cependant, quand je l'ai vérifié par des outils de traçage, j'ai trouvé quelque chose de bizarre.

Je l'ai fait un test unitaire en appelant 10 fois sur une méthode, qui a créé le client par ChannelFactory, et a ajouté explicitement tous les éléments de liaison, y compris l'élément de fixation compression. Lorsque j'ai vérifié tout d'abord la réponse à tcptrace, je fus surpris de voir que tous ces 10 messages sont combinés dans une seule requête.

J'ai donc essayé SvcTraceViewer de vérifier la demande, et a constaté que la connexion socket maintient ouverte jusqu'à ce que le service a été arrêté. Je regardais dans les progrès de traitement et je croyais tous les messages, les canaux sont fermés pour chaque demande, mais la connexion tout simplement pas fermé.

Le seul problème est arrivé en tcp net de liaison avec un élément de liaison de compression, si l'élément n'a pas été ajouté à la liaison ou http tout semble bien se lier.

Quelqu'un at-il essayé cette solution et vu le même problème avant? Y at-il autre chose que je peux faire pour forcer la connexion à fermer? Pourrais-je ai oublié quelque chose?

Merci, Tony

Était-ce utile?

La solution

Il semble que Microsoft a maintenant un article officiel sur la compression du codeur: http://msdn.microsoft.com/en- nous / bibliothèque / ms751458 (v = VS.90) .aspx

Je l'ai testé sur et semble que le problème a disparu. Ce n'est pas facile de faire ma course de test unitaire après que plusieurs jours:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top