2009-11-27 2 views
1

Je suis nouveau à Wcf et a essayé de créer mes premiers services Wcf. Classe ajoutée (nouvel assembly) qui contient du code non géré et manipule les fichiers. le comportement de service est défini comme suivreWcf instances isolées

InstanceContextMode = InstanceContextMode.Single

ConcurrencyMode = ConcurrencyMode.Single

Lorsque le service est accessible est seul mode, la nouvelle classe de manipulation de fichier est créé. J'ai remarqué que si la classe de manipulation de fichiers échouait (fuite de mémoire ou erreur critique) toutes les nouvelles connexions à l'hôte affectées par les connexions précédentes.

Est-il possible de créer des instances Wcf qui sont complètement isolées entre elles et complètement détruites après la fermeture du client?

salutations, Tomas

Répondre

2

Oui, c'est le mode préféré - on l'appelle "par appel":

InstanceContextMode = InstanceContextMode.PerCall

ConcurrencyMode = ConcurrencyMode.Single

De cette façon, chaque La requête entrant dans votre service WCF obtiendra sa propre instance distincte et isolée de la classe de service, et cette instance traitera la requête et sera ensuite éliminée.

Cela devrait vous donner des performances maximales et l'isolation des demandes les unes des autres.