La documentation autour de ce sujet est médiocre. J'utilise les services WCF avec NetTcpBinding hébergé dans le service Windows. Le problème est qu'une session est abandonnée lorsqu'elle est inactive pendant un certain temps. Ce dont j'ai besoin, c'est la session qui est toujours vivante. La session fiable de WCF est-elle quelque chose qui peut aider? Ou je peux juste jouer avec les paramètres de délai?Quel est le but de la session fiable WCF?
Répondre
Non, une session fiable expirera comme n'importe quelle autre session. La question principale est vraiment: pourquoi diable voulez-vous que vos sessions soient «sans fin»? Si vous en avez réellement besoin, vous devez augmenter les délais d'expiration de la session.
Le point d'une session fiable est que l'appelant saura tout message perdu. Contrairement à la croyance populaire, la session fiable ne peut pas garantir la livraison d'un message - mais si un message ne peut pas être délivré, au moins l'appelant le saura.
Découvrez quelques-unes de ces ressources pour plus d'informations de fond:
si vous n'utilisez pas le canal, il fermera lui-même après un certain temps. vous pouvez modifier le délai d'attente par défaut (qui est 10 min) de la liaison.
NetTcpBinding binding = new NetTcpBinding();
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;
lire plus au MSDN
- 1. Quel est le but de WCF MaxReceivedMessageSize
- 2. Quel est le but de precompiledApp.config?
- 3. Quel est le but de _GLOBAL__I_?
- 4. Quel est le but de MarshalByValue Object?
- 5. Quel est le but principal de WebExceptionStatus.Success?
- 6. Quel est le rôle et le but d'un bootstrappeur?
- 7. Quel est le but de l'utilisation?
- 8. Quel est le but de `qt_noop`
- 9. Quel est le but de Array.GetLowerBound (int)?
- 10. Quel est le but de $ _POST?
- 11. Quel est le but de Ruby's @@ double_at_variable?
- 12. Quel est le but de g ++ -Wreorder?
- 13. Quel est le but de la variable de session NLSTERRITORY dans Oracle?
- 14. Quel est le but du fichier vshost?
- 15. Quel est le but des fichiers pdb?
- 16. Quel est le but des exceptions?
- 17. Quel est le but de la déclaration avant?
- 18. Quel est le but de la méthode QAbstractButton :: checkStateSet()?
- 19. Quel est le but de la structure JS suivante?
- 20. Quel est le but de la fonction en php crc
- 21. Quel est le but de la classe NullObject dans Groovy?
- 22. Quel est le but de la finalisation en Java?
- 23. Quel est le but de la double implication?
- 24. quel est le but de fcntl avec le paramètre F_DUPFD
- 25. Quel est le but de kCAAnimationDiscrete et de kCAAnimationPaced?
- 26. Quel est le but de getSelectedItem() de JComboBox?
- 27. Quel est le but de l'API cible et de minSDK
- 28. Quel est le but de ce modèle de code?
- 29. Quel est le but de l'utilisation de System.img dans Android?
- 30. Quel est le but du schéma de base de données?
Merci pour clarifier ce qui est fiable pour la session. En ce qui concerne la session "sans fin": J'ai un système piloté par les événements. Lorsqu'un message arrive, le client doit appeler un service WCF. Les messages peuvent arriver chaque seconde et il est important de continuer à gérer chacun d'entre eux. Parfois, l'intervalle entre la réception d'un message peut être supérieur à une seconde, disons un ou deux jours. J'ai donc besoin d'un mécanisme de maintien en vie. –
@bsnote: pourquoi? Si l'intervalle entre deux messages est de deux jours, il n'y a vraiment aucun intérêt à avoir cette session active tout le temps, à mon avis .... –
Il est trop coûteux de créer un canal chaque fois qu'un message est reçu au cas où les messages sont reçus chaque seconde. Bien que je sois d'accord qu'il ne sert à rien d'avoir une session quand l'intervalle est d'un jour. –