2009-11-05 7 views
4

Je suis nouveau à WCF et j'ai essayé d'utiliser l'état de session dans les services Web, que j'ai réussi à travailler avec un numberofarticles.Stateful WCF Web Service

Mais ces articles suivent tous l'approche .net 2.0, car les nouvelles références de service WCF n'ont pas de CookieContainer par défaut.

Quelle est la nouvelle façon d'utiliser les services Web avec état?

(sans utiliser l'envers des approches, telles que la génération de code avec l'outil wsdl.exe ou 2.0 "Ajouter un service Web" route.)

+0

Pour votre information: Vieux services Web scolaire sont consommés en tant que type: System.Web.Services.Protocols.SoapHttpClientProtocol et avec WCF: System.ServiceModel.ClientBase –

Répondre

6

Un mot: NE PAS!

Les services doivent être apatrides autant que possible - cela rend la vie beaucoup plus facile.

Si vous devez conserver l'état entre les appels, placez-le dans un conteneur de persistance, par ex. une base de données, et de rendre compte de l'ID sous lequel il peut être trouvé pour le prochain appel.

Marc


Si vous avez vraiment devez garder session (?? vraiment Pensez deux fois - mieux encore: trois fois) - puis WCF offre des appels par session sur certaines liaisons (protocoles).

Le basicHttpBinding qui est le plus proche des services Web ASMX pour un ne prend pas en charge les sessions. Vous devez utiliser wsHttpBinding pour les applications Internet, ou netTcpBinding pour les services internes intranet.

Consultez le MSDN docs sur l'utilisation des sessions avec WCF.