L'utilisation de WSDualHttpBinding pour les rappels bidirectionnels fonctionnerait-elle dans des scénarios réels? Dites, j'ai une application .NET qui utilise un port aléatoire, le service serait capable de résoudre les adresses de base du client et le port pour les rappels?WSDualHttpBinding pour les rappels duplex
Répondre
Une réponse complète à votre question dépend du «scénario du monde réel», qu'il s'agisse d'un scénario Intranet ou Internet. Bien que WSDualHttpBinding fonctionne dans les deux scénarios, il y a des détails à connaître:
Intranet
WSDualHttpBinding travaillera avec votre application .NET à l'aide d'un port personnalisé préconfiguré dans un scénario Intranet et « Oui » le service sera capable de résoudre les adresses de base du client et le port pour les rappels: exactement comment est expliqué ci-dessous. La raison pour laquelle cela est expliqué ci-dessous est que WSDualHttpBinding est principalement conçu pour être utilisé sur Internet.
Les rappels bidirectionnels dans un scénario Intranet lorsque vous pouvez utiliser WCF sur le client et le serveur sont mieux réalisés en utilisant NetTcpBinding ou NetNamedPipeBinding. Ces liaisons utilisent respectivement TCP et ICP comme moyen de transport (plutôt que HTTP) et un codage binaire personnalisé, ce qui explique pourquoi le format WCF est requis des deux côtés. Pour les appels au client, le même canal que celui utilisé pour se connecter au Service via la liaison est réutilisé sans qu'un nouveau port ne soit ouvert.
Internet
Dans le cas d'Internet valide les requêtes HTTP et des réponses ne se déplacent dans une direction, HTTP est réalisé sous forme d'un protocole à sens unique. Lorsque vous utilisez WSDualHttpBinding WCF crée donc un canal HTTP distinct pour les rappels. En réponse à votre deuxième question: l'adresse de destination de ce rappel au client est composée par défaut du nom d'hôte de la machine cliente et du port 80. Si le client est une machine de développement par exemple et que IIS est installé, le port 80 sera exclusivement réservé dans certains scénarios, ce qui provoquera des conflits avec votre application prototype. C'est ce que this blog post présente une solution pour et à quoi la propriété ClientBaseAddress est conçue pour aider. Quel que soit le port utilisé (par défaut ou personnalisé), vous devez vous assurer que tous les pare-feu et routeurs des deux côtés sont correctement configurés pour permettre l'établissement du canal sortant et du canal de rappel séparé. Une application .NET peut également désigner une application Silverlight. En raison du fait qu'une application Silverlight fonctionnant dans un navigateur ne peut pas accepter de nouvelles connexions HTTP entrantes, WSDualHttpBinding avec son canal de retour séparé ne fonctionnera pas. Par conséquent, PollingDuplexHttpBinding a été créé d'abord dans Silverlight 2, ce qui peut être considéré comme une astuce pour contourner le fait que HTTP est unidirectionnel en gardant le canal de requête ouvert longtemps (longue interrogation) et en l'utilisant comme canal arrière pour rappelle au client. Cela a un certain nombre d'implications à la fois sur le côté client et sur le serveur, particulièrement pertinentes pour la mise à l'échelle. Pour plus de détails, voir this post from my blog.
Avec une idée de votre «scénario du monde réel» et de vos cas d'utilisation, nous espérons que cela vous aidera à établir la liaison correcte à utiliser pour les rappels duplex.
Si c'est une application derrière un pare-feu, théoriquement oui. Cela dépend de ce que vous entendez par "monde réel"; si par cela vous voulez dire "haute performance" peut-être NetTcpBinding est une meilleure approche.
- 1. Comment WsDualHttpBinding fait pour connaître le canal de rappel?
- 2. Outil de test WCF prenant en charge les scénarios Duplex?
- 3. Comment définir SuppressUnmanagedCodeSecurity pour les rappels?
- 4. Comment lier "this" pour les rappels jQuery?
- 5. Service duplex WCF utilisant net tcp: "Stream Security est requis ..."
- 6. J'ai besoin d'aide pour les rappels d'animation (iPhone)
- 7. Définition de receiveTimeout pour les rappels dans WCF?
- 8. Duplex MSMQ Channel?
- 9. Rappels datés dans les calendriers sharepoint
- 10. Les rappels WCF et le trafic réseau
- 11. Les rappels arrêtent les opérations dans les rails
- 12. Traitement des rappels
- 13. Les délégués et les rappels sont-ils identiques ou similaires?
- 14. Un canal ouvert est-il nécessaire pour la communication duplex?
- 15. Quelles sont les implications des connexions série semi-duplex?
- 16. Besoin d'aide pour les rappels et les classes anonymes en Java
- 17. Quelles sont les étapes à suivre pour utiliser les rappels WCF?
- 18. Utilisation des rappels AJAX avec les contrôles utilisateur ASP.NET
- 19. Le rappel duplex est toujours anonyme
- 20. rappels iCalendar ne fonctionne pas
- 21. Évolutivité de l'interrogation duplex avec Silverlight/IIS
- 22. Les appareils déclenchent-ils des rappels de modèles?
- 23. conception de base de données physique pour les rappels de notification par courriel
- 24. Rappels JavaScript ASP.NET sans PostBack complet?
- 25. Pointeurs de fonction et rappels dans C
- 26. Comment implémenter des rappels en Java
- 27. Reliure duplex possible avec un port entrant dans WCF?
- 28. Différence entre les rappels de client et les méthodes de page Ajax - ASP.NET
- 29. Service duplex WCF et épuisement du port TCP
- 30. Comment rétablir automatiquement un canal duplex en cas de panne?
Très informatif +1 –