Question

Je suis nouveau sur Wcf et j'ai essayé de créer mes premiers services Wcf. Classe ajoutée (nouvel assemblage) qui contient du code non managé et manipule des fichiers. Le comportement du service est défini comme suit

InstanceContextMode = InstanceContextMode.Single

ConcurrencyMode = ConcurrencyMode.Single

Lorsque le service est utilisé en mode simple, la nouvelle classe de manipulation de fichier est créée. J'ai remarqué que si la classe de manipulation de fichier é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 totalement isolées les unes des autres et complètement détruites après la fermeture de la connexion client?

salutations Tomas

Était-ce utile?

La solution

Oui, c'est le mode préféré. Il s'appelle "par appel":

  

InstanceContextMode =   InstanceContextMode.PerCall

     

ConcurrencyMode =   ConcurrencyMode.Single

Ainsi, chaque demande entrant dans votre service WCF obtiendra sa propre instance distincte et isolée de la classe de service, et cette instance traitera la demande, puis sera supprimée.

Cela devrait vous permettre d'optimiser les performances et d'isoler les requêtes les unes des autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top