2010-07-20 2 views
9

È noto che i servizi Web sono senza stato. È scritto in ogni testo che tratta le basi della WCF. Ma ho bisogno di sapere, Sono veramente apolidi.I servizi Web sono veramente senza stato?

Stavo leggendo sullo PerCall WCF webservice, che distrugge l'istanza di servizio per ogni chiamata. Non sono in grado di comprendere l'utilizzo del servizio Percall. Se i servizi web sono privi di stato, qual è la necessità di distruggere l'istanza del servizio per ogni chiamata.

risposta

7

WCF ha diversi modelli di istanze.

  • Singolo (Singleton), dove 1 istanza gestisce tutte le richieste.
  • modello PerCall dove ogni chiamata riceve un'istanza separata
  • modello PerSession in cui ogni cliente ottiene un'istanza (statefull)

Il modello PerCall è veramente senza stato. Con il modello singleton dipende da come lo scrivi (ma l'apolide è fortemente consigliato). Il modello PerSession non è affatto stateless.

Ci sono dei compromessi riguardanti l'utilizzo della memoria, la concorrenza, la latenza e la sicurezza.