Je suis assez nouveau à WCF et j'essaie de comprendre comment fonctionne le streaming.J'ai fondamentalement un service Web qui est censé retourner des informations à partir d'un db.Les données retournées sont potentiellement très grandes.Je me demandais si Si je comprends bien les choses, ma méthode de service Web devrait renvoyer un objet de flux. Mais comment transmettre des données au flux? S'agit-il simplement de sérialiser chaque objet et de l'écrire dans le flux? Si oui, comment exactement la sérialisation serait-elle faite? Encore une fois, un exemple simple serait très apprécié.Comment utiliser la diffusion en continu avec les services WCF renvoyant un grand ensemble de données?
Répondre
Vous devez simplement définir la propriété TransferMode de la liaison à la valeur Streamed et travailler avec vos services WCF comme vous le feriez. L'infrastructure WCF fera tout le travail automatiquement.
Voici un lien plus utile:
En fait, je revist l'architecture, comme le retour de grands résultats tout service (WCF, ASMX, etc.) est une odeur d'architecture.
Il existe très peu de raisons acceptables de renvoyer des jeux de résultats volumineux à partir d'un service. Une combinaison de plus/meilleur filtrage et mise en œuvre de la pagine sont la solution. Si vous ne faites que placer un simple placage de service sur votre base de données, observez les services de données WCF, car le filtrage et la pagination sont intégrés directement dans le framework. Sinon, examinez les services de données WCF pour voir ce qu'ils font et imiter votre service.
- 1. WCF Diffusion en continu/en groupe?
- 2. Données de diffusion en continu Flex
- 3. Diffusion en continu sur WCF à l'aide de NetTcpBinding
- 4. Détection de changement dans les données de diffusion en continu
- 5. Quel protocole utiliser pour la diffusion de musique en continu?
- 6. Diffusion de données avec AS3?
- 7. Diffusion en continu dans un buffer puis utilisation de données
- 8. Diffusion en continu sur UDP
- 9. Diffusion en continu de la vidéo en direct du service WCF vers Silverlight
- 10. Diffusion en continu avec Amazon S3
- 11. Comment remplir mongoose avec un grand ensemble de données
- 12. Utiliser les services WCF avec Android
- 13. Recherche dans un grand ensemble de données
- 14. Contrôle de la diffusion en continu avec MediaPlayer
- 15. Comment hacher un grand objet (ensemble de données) en Python?
- 16. tuyaux de diffusion en continu en Python
- 17. Services Web avec un grand volume de données
- 18. Téléchargement de fichiers volumineux dans WCF, en mode de diffusion en continu
- 19. Courbe ajustant un grand ensemble de données
- 20. Comment utiliser les services d'application client avec WCF?
- 21. Exigences de diffusion en continu H.264
- 22. Meilleure pratique pour la diffusion vidéo en continu avec C#
- 23. Diffusion en continu des performances 'insertAll' de BigQuery avec PHP
- 24. Diffusion en streaming avec WCF et MTOM
- 25. Diffusion en continu pour corriger l'interface réseau
- 26. Diffusion en continu d'un gros fichier directement dans la base de données
- 27. Diffusion en continu vers QTextEdit via QTextStream
- 28. Les services Ria remplacent les services WCF
- 29. Comment puis-je rechercher un grand ensemble de données XML?
- 30. diffusion vidéo en continu et intégration
Donc, je n'ai pas besoin de retourner un objet Stream ??? Si mon service Web renvoie une grande liste par exemple, cela fonctionnerait-il encore? –
Il n'est pas nécessaire de retourner le flux. Cela fonctionnera également avec de grandes listes. J'ai également ajouté un nouveau lien à ma réponse. – platon
Notez que la modification du TransferMode de Binding en streaming donne des limitations à l'interface du service. C'est probablement une bonne idée de placer les méthodes streamées dans une interface propre et de garder le reste des méthodes dans une interface qui reste tamponnée (ce qui est la valeur par défaut). –