J'ai un service de rappel hébergé sur wsDualHttpBinding. Je cherche à ajouter un client qui interrogera pour les données plutôt que de recevoir le rappel (sera un appareil mobile utilisant wince à des fins de démonstration). J'étais curieux de savoir quelle est la meilleure façon de le faire? Vous ne pouvez pas créer un proxy client en utilisant NetCFSvcUtil avec un service hébergé avec wsDualHttpBinding (je comprends cela), mais vous ne pouvez pas héberger un service de rappel sur basicHttpBinding. J'ai vraiment besoin du même service hébergé sur basicaHttpBinding (les clients interrogeront les données) et wsDualHttpBinding (le callback notifiera les données aux clients). Des idées sur la meilleure façon de gérer cela sans créer deux services distincts pour héberger les mêmes données?Service de rappel WCF hébergé sur basicHttpBinding et wsDualHttpBinding
Répondre
Qu'entendez-vous par deux services distincts hébergeant les mêmes données? Pensez-vous partager la même instance de service pour gérer les requêtes wsDualHttpBinding et basicHttpBinding?
Votre problème actuel est que l'interface de service pour la communication duplex ne peut pas être utilisée pour basicHttpBinding. Vous devez créer un deuxième contrat de service et l'implémenter dans le même service. Dans ce cas, vous pouvez exposer deux points de terminaison pour le service: un duplex avec WSDualHttpBinding et un avec BasicHttpBinding. Les points de terminaison doivent avoir des adresses relatives différentes. Du point de vue du client, ces points de terminaison sont des services distincts - chacun d'entre eux nécessite un proxy client distinct. Donc, à moins que votre service ne soit singleton, vous aurez une nouvelle instance de service pour chaque proxy client. Nouvelle instance de service signifie aucun partage de données.
Il existe quelques possibilités pour modifier ce comportement mais cela signifie remplacer le fournisseur d'instance.
- 1. WCF + SSL wsDualHttpBinding ou netTcpBinding
- 2. Communication WCF et client sur un service WCF auto-hébergé
- 3. URL WSDL pour un service WCF (basicHttpBinding) hébergé dans un service Windows
- 4. Plusieurs instances d'un service WCF auto-hébergé
- 5. Windows Service hébergé WCF sur HTTPS
- 6. WCF basichttpbinding routage netTcpBinding
- 7. Service WCF hébergé par IIS + authentification Windows dans IIS + TransportCredentialOnly/Windows auth dans basicHttpBinding
- 8. Service wsHttpBinding hébergé par IIS WCF - svcutil génère un proxy avec basicHttpBinding!
- 9. Comment WsDualHttpBinding fait pour connaître le canal de rappel?
- 10. Exception WCF sur serveur hébergé
- 11. Rappel asynchrone du service WCF
- 12. Test de chargement du service WCF (hébergé sur IIS)
- 13. Authentification mutuelle avec service WCF auto-hébergé
- 14. auto - serveur hébergé par WCF et SSL
- 15. BasichttpBinding vs WSHttpBinding de WCF
- 16. WCF wsHttpBinding et BasicHttpBinding dans la même application de service WCF
- 17. Log4Net d'un IIS hébergé service WCF
- 18. validation du certificat WCF personnalisé avec BasicHttpBinding
- 19. Services de rappel WCF
- 20. Plugin Android Eclipse appelant un service Web WCF dans basicHttpBinding
- 21. Comment consommer un service wcf hébergé sur une machine distante?
- 22. Pourquoi seulement basicHttpBinding avec silverlight et wcf?
- 23. Windows Service "auto-hébergé" WCF: compression?
- 24. Service de session WCF hébergé dans l'application ASP.NET MVC 2.0
- 25. WinService hébergé client WCF + PHP et service désactivé
- 26. Proxy IIS pour un service WCF hébergé du service Windows
- 27. Appel asynchrone pour service WCF hébergé dans le service Windows
- 28. Service d'hébergement WCF sur un hôte de confiance partielle
- 29. Silverlight WCF web service d'hébergement sur domain.com et www.domain.com
- 30. service WCF hébergé sur IIS et le site Web du client sur IIS
Merci. Les contrats de service multiples pour le même service semblent être ce qui me manquait. Je voudrais que mon service soit un service singleton et il semble que les clients utilisant le service de rappel ne «partagent» pas les données avec les clients utilisant le contrat de service sans rappel. Le service ne devrait-il pas détenir les mêmes données quel que soit le contrat utilisé par le client? J'ai InstanceContextMode = InstanceContextMode.Single et cela fonctionnait avant quand les clients partageaient le même contrat de service. Merci de votre aide. – Sean