2009-08-11 6 views
0

J'ai un service WCF et l'un de la méthode renvoie Stream. Maintenant, la question est quand j'essaie de consommer cet objet Stream, est-ce que j'essaie d'utiliser le flux sur le réseau ou le client a reçu le flux complet de son côté?Service WCF avec la réponse du flux

Est-ce que cela fera une différence si j'aurais utilisé RESTful au lieu de WCF?

Répondre

5

L'intérêt de l'utilisation de l'interface de diffusion en flux dans WCF est que le client obtient un flux à partir duquel il peut lire des blocs d'octets. L'ensemble de l'objet de retour (fichier, image, vidéo) sera assemblé en entier sur le serveur et renvoyé comme une fois gros morceau, le client peut à la place récupérer des morceaux à la fois dans le flux renvoyé par le service WCF.

Votre client récupère une instance "Stream", à partir de laquelle il peut ensuite lire les données, comme à partir d'un FileStream ou d'un MemoryStream. De cette façon, la quantité de mémoire nécessaire à un moment donné est réduite à une taille gérable (au lieu de potentiellement plusieurs gigaoctets en mode tampon, vous allez transférer un fichier volumineux dans des blocs de 1 Mo ou quelque chose comme ça).

Marc

+0

Devrais-je utiliser une liaison spécifique lors du retour de flux? – Miral

+1

Cela dépend - êtes-vous en interne, derrière un pare-feu d'entreprise? Ensuite, je recommanderais netTcp. Avez-vous besoin de prendre en charge des clients externes (Internet)? Ensuite, basicHttp est votre choix. –

+0

Avons-nous besoin de fermer le flux? Si oui, sera-t-il accessible chez le client? – Miral

Questions connexes