2011-03-31 6 views
0

J'ai écrit wcf service (serviceB) cnsumed par un autre service wcf (ServiceA).wcf-wcf octet []/memorystream/base64string pour améliorer la performance

ServiceA et ServiceB exécutent la même machine. J'utilise nettcpbinding. (comme c'est une bonne option pour wcf-wcf commnucation aussi ces deux services sont en intranet sur la même machine).

Opération Les paramètres du contrat pour ServiceB sont frontimage, backimage.

Quelle est la meilleure façon de faire passer frontimage et backimage pour améliorer la performance. J'utilise byte [],

i..e,

ici est le fonctionnement ocntract pour Serviceb

Hashtable GetConvertedImage (octet [] frontImage, octet [] backImage); Ma question est au lieu d'utiliser byte [] si j'utilise memorystream ou base64string cela améliorera la performance. Qu'en est-il de GZipStream?

Je peux transmettre les paramètres requis tout en les consommant dans ServiceA. L'objectif est d'améliorer la performance. En dehors de byte []/memorystream/base64string, il n'y a pas d'autre moyen d'améliorer les performances que de traiter les grandes images.

s'il vous plaît adivce

suis également en utilisant NetTcpBinding est-ce bien i ce scénario.

Répondre

0

Vous pouvez modifier votre service pour exposer les flux au lieu des tableaux d'octets. Ensuite, vous pouvez définir le mode de transfert sur Streaming.

Beaucoup plus de détails on MSDN

+0

mais il accepte un seul paramètre que le droit de flux. – ram

+0

Si j'utilise le streaming, il n'accepte qu'un seul paramètre en tant que flux à droite. dans mon cas je veux apss 2 images. Dans ce cas, j'ai besoin de créer 2 contrats d'exploitation et deux ivocations que je dois faire correctement. conseil plesae. Est-il possible de passer deux pramaters comme des flux – ram

+0

Je pense que le coût de l'appel de deux opérations en streaming est bien inférieur à celui de la sérialisation des données binaires dans un message SOAP. Vous pouvez utiliser un en-tête personnalisé pour transmettre des informations supplémentaires pour l'image (un identifiant pour associer les images par la suite par exemple) –

Questions connexes