2011-05-23 3 views
1

Je suis nouveau wcf et je veux quelques précisions, j'ai plusieurs services WCF (supposons service01-service05 avec le mode session) dans un seul projet, maintenant je veux savoir quand je vais créer un client et appelle le service01 puis service02 et ainsi de suite, sera-t-il créer la session unique ou session01, session02 (pour chaque session de service séparée) et ainsi de suite.session entre plusieurs services WCF

Si vous séparez la session, que faire pour une seule session tout en appelant des services multilingues.

Répondre

2

Il y aura une session par instance de service WCF. WCF conserve l'état de session en mémoire et le gère par point de terminaison de service par proxy. Cela implique également que si vous supprimez et recréez une nouvelle instance de proxy par appel, vous perdrez l'état de la session.

+0

ok je l'ai eu, mais si je veux maintenir une seule session pour plusieurs services alors que dois-je faire? une chose de plus à réaliser des fonctionnalités (projet niveau d'entreprise) sera-t-il préférable de créer plusieurs services ou simplement un service unique ayant plusieurs interfaces. mes préoccupations majeures sont maintenant la scalabilité. – user765573

+0

Vous ne pouvez pas gérer une session unique pour plusieurs services, car WCF gère l'état de session par point de terminaison de service, par proxy. Avoir plusieurs services signifie avoir plusieurs points de terminaison (au moins 1 point de terminaison par service), et par conséquent plusieurs services ne peuvent pas partager l'état de la session. Ce que vous pouvez éventuellement faire, c'est stocker l'état non dans les données de session mais dans une base de données ou dans un mécanisme de mise en cache, puis passez un ID de session dans vos appels de méthode de service. Vous auriez besoin d'un moyen de vous assurer que les données de session sont nettoyées. –

Questions connexes