J'ai une configuration de conteneur d'injection de dépendances dans mon application et je pense que composer le conteneur chaque fois qu'une requête de service WCF arrivera sera inefficace. Quelqu'un peut-il m'expliquer, pour un service WCF hébergé par http/IIS, quel est le cycle de vie du service? Si je peux comprendre cela, je peux prendre une décision éclairée sur où le conteneur doit être stocké, instancié, détruit, etc.Quel est le cycle de vie d'un service WCF (http) hébergé par IIS?
Répondre
Si votre InstanceContextMode
est Percall, la classe de service sera créé à partir de zéro pour chaque requête entrante, puis éliminé quand il est fait.
Si votre InstanceContextMode
est PerSession, la classe de service sera créé et utilisé pour desservir un client donné pendant toute la durée de la session (ou jusqu'à ce qu'un « InactivityTimeout » est rencontrée, ou une erreur se produit).
Si votre InstanceContextMode
est unique (singleton), sera créé la classe de service lorsque la première demande est et restera en mémoire tant que les demandes continuent d'affluer en, tant qu'aucune erreur se produit et pas InactivityTimeout est atteint.
Alors, voilà! Bien sûr, le mode d'accès simultané (pour PerSession
et Single
services) va également entrer en jeu pour rendre les choses juste un peu plus « intéressant »
Comme vous le mentionnez que vous essayez d'intégrer instanciation de service WCF avec un conteneur d'injection de dépendance, Je voudrais juste dire que j'ai eu une expérience très positive en utilisant le Castle WCF Integration Facility pour faire exactement cela.
Il est spécifique au conteneur d'injection de dépendances Castle Windsor mais étant open source, vous pouvez regarder à l'intérieur et comprendre certains des défis et des solutions fournis.
- 1. Evénements du cycle de vie WCF
- 2. quel compte d'utilisateur mon service wcf hébergé par IIS est-il exécuté?
- 3. Comportement de service WCF Durée de vie
- 4. Cycle de vie de la demande Wcf
- 5. Chemin d'accès relatif dans le service WCF hébergé dans IIS
- 6. Comment consommer un iis service hébergé WCF de asp.net2.0
- 7. Service WCF hébergé dans IIS avec liaison netTCP
- 8. Test de chargement du service WCF (hébergé sur IIS)
- 9. Service WCF hébergé par IIS + authentification Windows dans IIS + TransportCredentialOnly/Windows auth dans basicHttpBinding
- 10. Quel est le cycle de vie d'un téléchargement de fichier ASP.NET sur du code?
- 11. ASP.NET HttpApplication cycle de vie
- 12. Comment créer un écouteur pour les événements WCF ServiceHost lorsque le service est hébergé sous IIS?
- 13. Comment lancer un exécutable à partir d'un service WCF hébergé par IIS?
- 14. Meilleure pratique pour nommer un point de terminaison WCF pour un service hébergé iis?
- 15. Déplacement du service WCF de IIS vers un service Windows
- 16. Appel asynchrone pour service WCF hébergé dans le service Windows
- 17. ASP.NET MVC ViewPage Cycle de vie
- 18. Un service WCF hébergé par Windows peut-il utiliser HTTPS?
- 19. Pourquoi un service Web WCF hébergé dans IIS cesserait-il de répondre de manière aléatoire?
- 20. Service WCF à la racine de l'hôte IIS
- 21. Service WCF hébergé dans IIS - Impossible de mettre en cache ou de conserver l'état?
- 22. JavaScript cycle de vie de prototype augmentée
- 23. Cycle de vie de la page ASP.net
- 24. IIS hébergeant l'erreur de service WCF
- 25. WCF - IIS 6 par rapport à IIS 7
- 26. Problème lors de l'accès au service WCF hébergé sur IIS à partir d'une application Windows
- 27. Pourquoi mon service WCF hébergé par Winforms est-il mono-threadé?
- 28. Appel de méthode de service Web hébergé par IIS au hasard
- 29. WCF variable durée de vie/état
- 30. Comment comsume IIS Hosted WCF service de Asp.net 2.0
Nice! Merci, exactement la réponse que je voulais. –
Pour définir cela, vous ajoutez un ServiceBehaviorAttribute à votre classe de service. Ceci est le mien qui correspond bien avec ninject: [ServiceBehavior (InstanceContextMode = InstanceContextMode.PerCall)] – Twisted